Build Pipeline #6
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Pipeline | |
# This is responsible for the whole delivery pipeline (build, integrate, test and release) | |
on: | |
workflow_dispatch: | |
pull_request: | |
types: [ opened, synchronize, reopened ] | |
branches: | |
- deploy | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
strategy: | |
matrix: | |
config: [ | |
{ target: Android, os: ubuntu-latest, tasks: ":composeApp:assembleDebug :composeApp:assembleRelease :composeApp:bundleRelease", continueOnError: false }, | |
# { target: ios, os: macos-12, tasks: "iosX64Test iosSimulatorArm64Test", continueOnError: false }, | |
{ target: Windows, os: windows-latest, tasks: ":composeApp:packageReleaseMsi", continueOnError: false }, | |
{ target: Linux, os: ubuntu-latest, tasks: ":composeApp:packageReleaseDeb", continueOnError: false }, | |
] | |
runs-on: ${{ matrix.config.os }} | |
name: Build ${{ matrix.config.target }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: 17 | |
distribution: temurin | |
cache: gradle | |
- if: ${{ matrix.config.target == 'ios' }} | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest-stable | |
- name: Make gradlew executable | |
run: chmod +x ./gradlew | |
- name: Build Targets | |
run: | | |
./gradlew --console=plain ${{ matrix.config.tasks }} --info | |
- if: ${{ matrix.config.target == 'Android' }} | |
name: Sign Android AAB | |
uses: ilharp/sign-android-release@v1 | |
id: sign_aab | |
with: | |
releaseDir: composeApp/build/outputs/bundle/release | |
signingKey: ${{ secrets.KEYSTORE_FILE }} | |
keyAlias: ${{ secrets.KEY_ALIAS }} | |
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }} | |
keyPassword: ${{ secrets.KEY_PASSWORD }} | |
buildToolsVersion: 34.0.0 | |
- if: ${{ matrix.config.target == 'Android' }} | |
name: Sign Android APK | |
uses: ilharp/sign-android-release@v1 | |
id: sign_apk | |
with: | |
releaseDir: composeApp/build/outputs/apk/release | |
signingKey: ${{ secrets.KEYSTORE_FILE }} | |
keyAlias: ${{ secrets.KEY_ALIAS }} | |
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }} | |
keyPassword: ${{ secrets.KEY_PASSWORD }} | |
buildToolsVersion: 34.0.0 | |
- if: ${{ matrix.config.target == 'Android' }} | |
name: Upload Android AAB | |
uses: actions/upload-artifact@master | |
with: | |
name: android-release.aab | |
path: ${{steps.sign_aab.outputs.signedFiles}} | |
- if: ${{ matrix.config.target == 'Android' }} | |
name: Upload Android APK | |
uses: actions/upload-artifact@master | |
with: | |
name: android-release.apk | |
path: ${{steps.sign_apk.outputs.signedFiles}} | |
- if: ${{ matrix.config.target == 'Android' }} | |
name: Upload Android Debug APK | |
uses: actions/upload-artifact@master | |
with: | |
name: android-debug.apk | |
path: ./composeApp/build/outputs/apk/debug/*.apk | |
- if: ${{ matrix.config.target == 'Windows' }} | |
name: Upload Windows MSI Package | |
uses: actions/upload-artifact@master | |
with: | |
name: windows-x64.msi | |
path: ./composeApp/build/compose/binaries/main-release/msi/*.msi | |
- if: ${{ matrix.config.target == 'Linux' }} | |
name: Upload Linux DEB Package | |
uses: actions/upload-artifact@master | |
with: | |
name: linux-x64.deb | |
path: ./composeApp/build/compose/binaries/main-release/deb/*.deb | |
# - if: ${{ matrix.config.target == 'Android' }} | |
# name: Upload Mapping File | |
# uses: actions/upload-artifact@master | |
# with: | |
# name: android-mapping.txt | |
# path: | |
# android/app/build/outputs/mapping/release/mapping.txt |