From 6eec01bad61a4ddec37914230c22b1d90d4df8a0 Mon Sep 17 00:00:00 2001 From: ardocrat Date: Fri, 6 Feb 2026 07:52:15 +0000 Subject: [PATCH] ci: linux x86 build, cargo registry - Build Linux x86 on separate runner (fix Appimage on x86 platform) - Use Cargo Nexus registry - Build at single file - Fix previous release check for tag Reviewed-on: https://code.gri.mw/GUI/grim/pulls/38 --- .forgejo/workflows/build.yaml | 3 + .forgejo/workflows/linux.yaml | 60 --------- .forgejo/workflows/macos.yaml | 52 -------- .forgejo/workflows/release.yaml | 230 +++++++++++++++++++++++++++----- .forgejo/workflows/windows.yaml | 48 ------- scripts/android.sh | 24 ++-- 6 files changed, 205 insertions(+), 212 deletions(-) delete mode 100644 .forgejo/workflows/linux.yaml delete mode 100644 .forgejo/workflows/macos.yaml delete mode 100644 .forgejo/workflows/windows.yaml diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index 4bd8759d..8f04121f 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -32,6 +32,9 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + - name: Setup registry + run: | + echo -e '[registries.nexus]\nindex = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"\n[registry]\ndefault = "nexus"\n[source.crates-io]\nreplace-with = "nexus"\n[source.nexus]\nregistry = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"' > ~/.cargo/config.toml - name: Build if: ${{ steps.check.outputs.test == 'true' }} run: cargo build --release diff --git a/.forgejo/workflows/linux.yaml b/.forgejo/workflows/linux.yaml deleted file mode 100644 index 9b23359e..00000000 --- a/.forgejo/workflows/linux.yaml +++ /dev/null @@ -1,60 +0,0 @@ -on: - workflow_call: - inputs: - version: - required: true - type: string - -jobs: - release: - runs-on: ubuntu - steps: - - uses: actions/checkout@v6 - with: - submodules: recursive - - run: mkdir release - - name: Restore cargo cache - id: cache-cargo-restore - uses: actions/cache/restore@v5 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - name: Release Linux x86 - run: cargo zigbuild --release --target x86_64-unknown-linux-gnu - - name: AppImage x86 - run: | - cp target/x86_64-unknown-linux-gnu/release/grim linux/Grim.AppDir/AppRun - appimagetool linux/Grim.AppDir grim-${{ inputs.version }}-linux-x86_64.AppImage - cp grim-${{ inputs.version }}-linux-x86_64.AppImage release/ - - name: Checksum AppImage x86 - working-directory: release - run: sha256sum grim-${{ inputs.version }}-linux-x86_64.AppImage > grim-${{ inputs.version }}-linux-x86_64-appimage-sha256sum.txt - - name: Release Linux ARM - run: cargo zigbuild --release --target aarch64-unknown-linux-gnu - - name: Save cargo cache - uses: actions/cache/save@v5 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ steps.cache-cargo-restore.outputs.cache-primary-key }} - - name: AppImage ARM - run: | - cp target/aarch64-unknown-linux-gnu/release/grim linux/Grim.AppDir/AppRun - appimagetool linux/Grim.AppDir grim-${{ inputs.version }}-linux-arm.AppImage - cp grim-${{ inputs.version }}-linux-arm.AppImage release/ - - name: Checksum AppImage ARM - working-directory: release - run: sha256sum grim-${{ inputs.version }}-linux-arm.AppImage > grim-${{ inputs.version }}-linux-arm-appimage-sha256sum.txt - - name: Upload artifacts - run: | - tar -czf linux.tar.gz release - curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file linux.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/linux.tar.gz \ No newline at end of file diff --git a/.forgejo/workflows/macos.yaml b/.forgejo/workflows/macos.yaml deleted file mode 100644 index 87e86048..00000000 --- a/.forgejo/workflows/macos.yaml +++ /dev/null @@ -1,52 +0,0 @@ -on: - workflow_call: - inputs: - version: - required: true - type: string - -jobs: - release: - runs-on: ubuntu - steps: - - uses: actions/checkout@v6 - with: - submodules: recursive - - run: mkdir release - - name: Restore cargo cache - id: cache-cargo-restore - uses: actions/cache/restore@v5 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - name: Release MacOS Universal - run: | - cargo zigbuild --release --target universal2-apple-darwin - cp target/universal2-apple-darwin/release/grim macos/Grim.app/Contents/MacOS - - name: Save cargo cache - uses: actions/cache/save@v5 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ steps.cache-cargo-restore.outputs.cache-primary-key }} - - name: Archive Universal - working-directory: macos - run: | - zip -r grim-${{ inputs.version }}-macos.zip Grim.app - mv grim-${{ inputs.version }}-macos.zip ../release - - name: Checksum Release Universal - working-directory: release - run: sha256sum grim-${{ inputs.version }}-macos.zip > grim-${{ inputs.version }}-macos-sha256sum.txt - - name: Upload artifacts - run: | - tar -czf macos.tar.gz release - curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file macos.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/macos.tar.gz \ No newline at end of file diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml index e48d3ccb..ac3081ad 100644 --- a/.forgejo/workflows/release.yaml +++ b/.forgejo/workflows/release.yaml @@ -40,13 +40,6 @@ jobs: echo "exists=${exists}" >> "$FORGEJO_OUTPUT" echo ${exists} mkdir release - - name: Check previous release - id: check_prev - run: | - git fetch --tags - [[ ${{ steps.check.outputs.exists == 'true' || forgejo.ref_type == 'branch' }} ]] && skip=1 || skip=0 - last_tag=$(git describe --abbrev=0 --tags $(git rev-list --tags --skip=${skip} --max-count=1)) - echo "last_tag=${last_tag}" >> "$FORGEJO_OUTPUT" - uses: ardocrat/forgejo-release@grim if: ${{ forgejo.ref_type == 'tag' && steps.check.outputs.exists == 'true' }} with: @@ -73,6 +66,12 @@ jobs: uses: actions/delete-release@v1 with: release_name: "${{ forgejo.ref_name }}-dev" + - name: Check previous release + id: check_prev + run: | + git fetch --tags + last_tag=$(git describe --abbrev=0 --tags $(git rev-list --tags --skip=1 --max-count=1)) + echo "last_tag=${last_tag}" >> "$FORGEJO_OUTPUT" android_libs: if: ${{ forgejo.ref_type == 'branch' || needs.version.outputs.exists == 'false' }} @@ -91,6 +90,9 @@ jobs: ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + - name: Setup registry + run: | + echo -e '[registries.nexus]\nindex = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"\n[registry]\ndefault = "nexus"\n[source.crates-io]\nreplace-with = "nexus"\n[source.nexus]\nregistry = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"' - name: Build libs run: | chmod +x scripts/android.sh && ./scripts/android.sh lib ${{ needs.version.outputs.v }} @@ -172,58 +174,214 @@ jobs: tar -czf android.tar.gz release curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file android.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/android.tar.gz - linux: + linux_arm: if: ${{ forgejo.ref_type == 'branch' || needs.version.outputs.exists == 'false' }} runs-on: ubuntu needs: [version, android_libs, android_release] - uses: ./.forgejo/workflows/linux.yaml - with: - version: ${{ needs.version.outputs.v }} - secrets: - RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} - MAVEN_HOST: ${{ secrets.MAVEN_HOST }} - MAVEN_USER: ${{ secrets.MAVEN_USER }} - MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + steps: + - uses: actions/checkout@v6 + with: + submodules: recursive + - name: Restore cargo cache + id: cache-cargo-restore + uses: actions/cache/restore@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + - name: Setup registry + run: | + echo -e '[registries.nexus]\nindex = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"\n[registry]\ndefault = "nexus"\n[source.crates-io]\nreplace-with = "nexus"\n[source.nexus]\nregistry = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"' > ~/.cargo/config.toml + - name: Release Linux ARM + run: cargo zigbuild --release --target aarch64-unknown-linux-gnu + - name: Save cargo cache + uses: actions/cache/save@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ steps.cache-cargo-restore.outputs.cache-primary-key }} + - name: AppImage ARM + run: | + mkdir release + cp target/aarch64-unknown-linux-gnu/release/grim linux/Grim.AppDir/AppRun + appimagetool linux/Grim.AppDir grim-${{ needs.version.outputs.v }}-linux-arm.AppImage + cp grim-${{ needs.version.outputs.v }}-linux-arm.AppImage release/ + - name: Checksum AppImage ARM + working-directory: release + run: sha256sum grim-${{ needs.version.outputs.v }}-linux-arm.AppImage > grim-${{ needs.version.outputs.v }}-linux-arm-appimage-sha256sum.txt + - name: Upload artifacts + run: | + tar -czf linux-arm.tar.gz release + curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file linux-arm.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/linux-arm.tar.gz + + linux_x86: + if: ${{ forgejo.ref_type == 'branch' || needs.version.outputs.exists == 'false' }} + runs-on: ubuntu-linux-x86 + needs: [version, android_libs, android_release] + steps: + - uses: actions/checkout@v6 + with: + submodules: recursive + - name: Restore cargo cache + id: cache-cargo-restore + uses: actions/cache/restore@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + - name: Setup registry + run: | + echo -e '[registries.nexus]\nindex = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"\n[registry]\ndefault = "nexus"\n[source.crates-io]\nreplace-with = "nexus"\n[source.nexus]\nregistry = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"' > ~/.cargo/config.toml + - name: Release Linux x86 + run: cargo zigbuild --release --target x86_64-unknown-linux-gnu + - name: Save cargo cache + uses: actions/cache/save@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ steps.cache-cargo-restore.outputs.cache-primary-key }} + - name: AppImage x86 + run: | + mkdir release + cp target/x86_64-unknown-linux-gnu/release/grim linux/Grim.AppDir/AppRun + appimagetool linux/Grim.AppDir grim-${{ needs.version.outputs.v }}-linux-x86_64.AppImage + cp grim-${{ needs.version.outputs.v }}-linux-x86_64.AppImage release/ + - name: Checksum AppImage x86 + working-directory: release + run: sha256sum grim-${{ needs.version.outputs.v }}-linux-x86_64.AppImage > grim-${{ needs.version.outputs.v }}-linux-x86_64-appimage-sha256sum.txt + - name: Upload artifacts + run: | + tar -czf linux-x86_64.tar.gz release + curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file linux-x86_64.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/linux-x86_64.tar.gz macos: if: ${{ forgejo.ref_type == 'branch' || needs.version.outputs.exists == 'false' }} runs-on: ubuntu needs: [version, android_libs, android_release, linux] - uses: ./.forgejo/workflows/macos.yaml - with: - version: ${{ needs.version.outputs.v }} - secrets: - RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} - MAVEN_HOST: ${{ secrets.MAVEN_HOST }} - MAVEN_USER: ${{ secrets.MAVEN_USER }} - MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + steps: + - uses: actions/checkout@v6 + with: + submodules: recursive + - run: mkdir release + - name: Restore cargo cache + id: cache-cargo-restore + uses: actions/cache/restore@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + - name: Setup registry + run: | + echo -e '[registries.nexus]\nindex = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"\n[registry]\ndefault = "nexus"\n[source.crates-io]\nreplace-with = "nexus"\n[source.nexus]\nregistry = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"' > ~/.cargo/config.toml + - name: Release MacOS Universal + run: | + cargo zigbuild --release --target universal2-apple-darwin + cp target/universal2-apple-darwin/release/grim macos/Grim.app/Contents/MacOS + - name: Save cargo cache + uses: actions/cache/save@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ steps.cache-cargo-restore.outputs.cache-primary-key }} + - name: Archive Universal + working-directory: macos + run: | + zip -r grim-${{ needs.version.outputs.v }}-macos.zip Grim.app + mv grim-${{ needs.version.outputs.v }}-macos.zip ../release + - name: Checksum Release Universal + working-directory: release + run: sha256sum grim-${{ needs.version.outputs.v }}-macos.zip > grim-${{ needs.version.outputs.v }}-macos-sha256sum.txt + - name: Upload artifacts + run: | + tar -czf macos.tar.gz release + curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file macos.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/macos.tar.gz windows: if: ${{ forgejo.ref_type == 'branch' || needs.version.outputs.exists == 'false' }} runs-on: ubuntu needs: [version, android_libs, android_release, linux, macos] - uses: ./.forgejo/workflows/windows.yaml - with: - version: ${{ needs.version.outputs.v }} - secrets: - RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} - MAVEN_HOST: ${{ secrets.MAVEN_HOST }} - MAVEN_USER: ${{ secrets.MAVEN_USER }} - MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + steps: + - uses: actions/checkout@v6 + with: + submodules: recursive + - run: mkdir release + - name: Restore cargo cache + id: cache-cargo-restore + uses: actions/cache/restore@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + - name: Setup registry + run: | + echo -e '[registries.nexus]\nindex = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"\n[registry]\ndefault = "nexus"\n[source.crates-io]\nreplace-with = "nexus"\n[source.nexus]\nregistry = "sparse+${{ secrets.MAVEN_HOST }}/repository/cargo/"' > ~/.cargo/config.toml + - name: Release Windows x86 + run: | + cargo build --release --target x86_64-pc-windows-gnu + zip grim-${{ needs.version.outputs.v }}-win-x86_64.zip target/x86_64-pc-windows-gnu/release/grim.exe + mv grim-${{ needs.version.outputs.v }}-win-x86_64.zip release/ + - name: Save cargo cache + uses: actions/cache/save@v5 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ steps.cache-cargo-restore.outputs.cache-primary-key }} + - name: Checksum Archive x86 + working-directory: release + run: sha256sum grim-${{ needs.version.outputs.v }}-win-x86_64.zip > grim-${{ needs.version.outputs.v }}-win-x86_64-sha256sum.txt + - name: Upload artifacts + run: | + tar -czf windows.tar.gz release + curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file windows.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/windows.tar.gz release: if: ${{ forgejo.ref_type == 'branch' || needs.version.outputs.exists == 'false' }} runs-on: ubuntu - needs: [version, android_libs, android_release, linux, macos, windows] + needs: [version, android_libs, android_release, linux, linux_x86, macos, windows] steps: - name: Download All Artifacts run: | curl -o android.tar.gz -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/android.tar.gz tar -xzf android.tar.gz rm android.tar.gz - curl -o linux.tar.gz -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/linux.tar.gz - tar -xzf linux.tar.gz - rm linux.tar.gz + curl -o linux-arm.tar.gz -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/linux-arm.tar.gz + tar -xzf linux-arm.tar.gz + rm linux-arm.tar.gz + curl -o linux-x86_64.tar.gz -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/linux-x86_64.tar.gz + tar -xzf linux-x86_64.tar.gz + rm linux-x86_64.tar.gz curl -o macos.tar.gz -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/macos.tar.gz tar -xzf macos.tar.gz rm macos.tar.gz diff --git a/.forgejo/workflows/windows.yaml b/.forgejo/workflows/windows.yaml deleted file mode 100644 index 2a5371e8..00000000 --- a/.forgejo/workflows/windows.yaml +++ /dev/null @@ -1,48 +0,0 @@ -on: - workflow_call: - inputs: - version: - required: true - type: string - -jobs: - windows: - runs-on: ubuntu - steps: - - uses: actions/checkout@v6 - with: - submodules: recursive - - run: mkdir release - - name: Restore cargo cache - id: cache-cargo-restore - uses: actions/cache/restore@v5 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - name: Release Windows x86 - run: | - cargo build --release --target x86_64-pc-windows-gnu - zip grim-${{ inputs.version }}-win-x86_64.zip target/x86_64-pc-windows-gnu/release/grim.exe - mv grim-${{ inputs.version }}-win-x86_64.zip release/ - - name: Save cargo cache - uses: actions/cache/save@v5 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ steps.cache-cargo-restore.outputs.cache-primary-key }} - - name: Checksum Archive x86 - working-directory: release - run: sha256sum grim-${{ inputs.version }}-win-x86_64.zip > grim-${{ inputs.version }}-win-x86_64-sha256sum.txt - - name: Upload artifacts - run: | - tar -czf windows.tar.gz release - curl -v -u ${{ secrets.MAVEN_USER }}:${{ secrets.MAVEN_PASSWORD }} --upload-file windows.tar.gz ${{ secrets.MAVEN_HOST }}/repository/grim-ci-artifacts/${{ forgejo.repository }}/windows.tar.gz \ No newline at end of file diff --git a/scripts/android.sh b/scripts/android.sh index bf9c4733..d1e8f7de 100755 --- a/scripts/android.sh +++ b/scripts/android.sh @@ -1,6 +1,6 @@ #!/bin/bash -usage="Usage: android.sh [type] [platform|version] [flavor]\n - type: 'build' to run locally, 'lib' - .so for all platforms, 'release' - .apk for all platforms\n - platform, for 'build' type: 'v7', 'v8', 'x86'\n - version for 'lib' and 'release', example: '0.2.2'\n - flavor, for non-'lib' type: 'ci' for local maven, 'local' for external" +usage="Usage: android.sh [type] [platform|version] [flavor]\n - type: 'build' to run locally, 'lib' - .so for all platforms, 'release' - .apk for all platforms\n - platform, for 'build' type: 'v7', 'v8', 'x86'\n - version for 'lib' and 'release', example: '0.2.2'\n - optional flavor, for non-'lib' type: 'ci' for local maven, default - 'local' for external" case $1 in build|lib|release) ;; @@ -19,16 +19,6 @@ if [[ $1 == "build" ]]; then esac fi -if [[ $1 != "lib" ]]; then - case $3 in - ci|local) - ;; - *) - printf "$usage" - exit 1 - esac -fi - # Setup build directory BASEDIR=$(cd "$(dirname "$0")" && pwd) cd "${BASEDIR}" || exit 1 @@ -65,21 +55,23 @@ function build_lib() { ### Build application function build_apk() { + flavor=$3 + [[ flavor == "" ]] && flavor="local" cd android || exit 1 ./gradlew clean # Build signed apk if keystore exists if [ ! -f keystore.properties ]; then - ./gradlew assemble$3Debug + ./gradlew assemble${flavor}Debug if [ $? -ne 0 ]; then success=0 fi - apk_path=app/build/outputs/apk/$3/debug/app-$3-debug.apk + apk_path=app/build/outputs/apk/${flavor}/debug/app-${flavor}-debug.apk else - ./gradlew assemble$3SignedRelease + ./gradlew assemble${flavor}SignedRelease if [ $? -ne 0 ]; then success=0 fi - apk_path=app/build/outputs/apk/$3/signedRelease/app-$3-signedRelease.apk + apk_path=app/build/outputs/apk/${flavor}/signedRelease/app-${flavor}-signedRelease.apk fi if [[ $1 == "" ]] && [ $success -eq 1 ]; then @@ -119,7 +111,7 @@ if [[ $1 == "lib" ]]; then [ $success -eq 1 ] && exit 0 elif [[ $1 == "build" ]]; then build_lib "$2" - [ $success -eq 1 ] && build_apk + [ $success -eq 1 ] && build_apk "" "" "$3" [ $success -eq 1 ] && exit 0 else rm -rf target/release-apk