From 43c2b8b6cbdd7615adc490d9b69413022c0b5e3d Mon Sep 17 00:00:00 2001 From: Philipp Hoenisch Date: Fri, 14 Apr 2023 14:13:54 -0400 Subject: [PATCH] chore: only release apk on release creation --- .github/workflows/build-release-binaries.yml | 112 +++++++++++++++++++ .github/workflows/create_release.yml | 108 ------------------ 2 files changed, 112 insertions(+), 108 deletions(-) diff --git a/.github/workflows/build-release-binaries.yml b/.github/workflows/build-release-binaries.yml index 71ec33c6a..3ca974774 100644 --- a/.github/workflows/build-release-binaries.yml +++ b/.github/workflows/build-release-binaries.yml @@ -4,6 +4,10 @@ on: release: types: [created] +env: + FLUTTER_VERSION: "3.7.7" + RUST_VERSION: "1.68.0" + jobs: build_testflight_release: permissions: @@ -15,3 +19,111 @@ jobs: electrs_endpoint: blockstream.info:110 coordinator_p2p_endpoint: 022ae8dbec1caa4dac93f07f2ebf5ad7a5dd08d375b79f11095e81b065c2155156@34.30.20.202:9045 tag: ${{ github.event.release.target_commitish }} + + build_android_apk: + runs-on: macos-latest + outputs: + ANDROID_APK_NAME: ${{ steps.build.outputs.ANDROID_APK_NAME }} + steps: + - uses: actions/checkout@v3 + with: + # fetch the complete history to correctly calculate build_number + fetch-depth: 0 + tag: ${{ github.event.release.target_commitish }} + + # #499, https://github.com/actions/virtual-environments/issues/5595 + - name: Configure ndk + run: | + ANDROID_HOME=$HOME/Library/Android/sdk + SDKMANAGER=$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager + + echo y | $SDKMANAGER "ndk;21.4.7075529" + + ln -sfn $ANDROID_HOME/ndk/21.4.7075529 $ANDROID_HOME/ndk-bundle + + - name: Setup | Rust + uses: ATiltedTree/setup-rust@v1 + with: + rust-version: ${{ env.RUST_VERSION }} + + - uses: actions/setup-java@v3 + with: + distribution: "temurin" + java-version: "11.x" + cache: "gradle" + + - uses: subosito/flutter-action@v2 + with: + channel: "stable" + flutter-version: ${{ env.FLUTTER_VERSION }} + architecture: x64 + + - uses: actions/cache@v3 + id: cache-deps + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + ./rust/target + key: ${{ runner.os }}-cargo-integrate-android-${{ hashFiles('**/Cargo.lock') }}-${{ steps.checkout.outputs.rustc_hash }} + + - name: Install just + if: steps.cache-deps.outputs.cache-hit != 'true' + run: cargo install just + + - name: Install FFI bindings + if: steps.cache-deps.outputs.cache-hit != 'true' + run: just deps-gen + + - name: Generate FFI bindings + run: just gen + + - name: Add Rust targets + run: rustup target add armv7-linux-androideabi aarch64-linux-android + + - name: Install `cargo-ndk` + if: steps.cache-deps.outputs.cache-hit != 'true' + run: cargo install cargo-ndk --force + + - name: Build Rust lib + working-directory: ./mobile/native + run: cargo ndk -o ../android/app/src/main/jniLibs build + + - name: Parse version from pubspec.yaml + id: version + uses: jbutcher5/read-yaml@1.6 + with: + file: "mobile/pubspec.yaml" + key-path: '["version"]' + + - name: Build Android APK release + id: build + run: | + mkdir keystore + echo $ENCODED_KEYSTORE | base64 -d > keystore/upload-keystore.jks + BUILD_NAME=${{ steps.version.outputs.data }} + BUILD_NUMBER=$(git rev-list HEAD --count) + cd mobile + flutter build apk --dart-define="ELECTRS_ENDPOINT=$ELECTRS_ENDPOINT" \ + --dart-define="COORDINATOR_P2P_ENDPOINT=$COORDINATOR_P2P_ENDPOINT" \ + --dart-define="COMMIT=$(git rev-parse HEAD)" \ + --dart-define="BRANCH=$(git rev-parse --abbrev-ref HEAD)" \ + --build-name=$BUILD_NAME --build-number=$BUILD_NUMBER \ + --release + mv build/app/outputs/flutter-apk/app-release.apk build/app/outputs/flutter-apk/get10101-$BUILD_NAME.apk + echo "ANDROID_APK_NAME=$(echo get10101-$BUILD_NAME.apk)" >> $GITHUB_OUTPUT + env: + SIGNING_KEY_ALIAS: ${{ secrets.ANDROID_UPLOAD_SIGNING_KEY_ALIAS }} + SIGNING_KEY_PASSWORD: ${{ secrets.ANDROID_UPLOAD_SIGNING_KEY_PASSWORD }} + SIGNING_STORE_PASSWORD: ${{ secrets.ANDROID_UPLOAD_SIGNING_STORE_PASSWORD }} + ENCODED_KEYSTORE: ${{ secrets.ANDROID_UPLOAD_KEYSTORE }} + ELECTRS_ENDPOINT: 35.189.57.114:50000 + COORDINATOR_P2P_ENDPOINT: 026e1de0e76902d71d2c27bfdda9d48c19c4c550f08bb4189d7208246e0e3af97e@35.189.57.114:9045 + + - name: Upload APK to job + uses: actions/upload-artifact@v3 + with: + name: ${{steps.build.outputs.ANDROID_APK_NAME}} + path: mobile/build/app/outputs/flutter-apk/${{steps.build.outputs.ANDROID_APK_NAME}} diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml index 3127e9211..9b2129729 100644 --- a/.github/workflows/create_release.yml +++ b/.github/workflows/create_release.yml @@ -5,115 +5,7 @@ on: types: - closed -env: - FLUTTER_VERSION: "3.7.7" - RUST_VERSION: "1.68.0" - jobs: - build: - runs-on: macos-latest - if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release/') - outputs: - ANDROID_APK_NAME: ${{ steps.build.outputs.ANDROID_APK_NAME }} - steps: - - uses: actions/checkout@v3 - with: - # fetch the complete history to correctly calculate build_number - fetch-depth: 0 - - # #499, https://github.com/actions/virtual-environments/issues/5595 - - name: Configure ndk - run: | - ANDROID_HOME=$HOME/Library/Android/sdk - SDKMANAGER=$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager - - echo y | $SDKMANAGER "ndk;21.4.7075529" - - ln -sfn $ANDROID_HOME/ndk/21.4.7075529 $ANDROID_HOME/ndk-bundle - - - name: Setup | Rust - uses: ATiltedTree/setup-rust@v1 - with: - rust-version: ${{ env.RUST_VERSION }} - components: rustfmt - - - uses: actions/setup-java@v3 - with: - distribution: "temurin" - java-version: "11.x" - cache: "gradle" - - - uses: subosito/flutter-action@v2 - with: - channel: "stable" - flutter-version: ${{ env.FLUTTER_VERSION }} - architecture: x64 - - - uses: actions/cache@v3 - id: cache-deps - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - ./rust/target - key: ${{ runner.os }}-cargo-integrate-android-${{ hashFiles('**/Cargo.lock') }}-${{ steps.checkout.outputs.rustc_hash }} - - - name: Install just - if: steps.cache-deps.outputs.cache-hit != 'true' - run: cargo install just - - - name: Install FFI bindings - if: steps.cache-deps.outputs.cache-hit != 'true' - run: just deps-gen - - - name: Generate FFI bindings - run: just gen - - - name: Add Rust targets - run: rustup target add armv7-linux-androideabi aarch64-linux-android - - - name: Install `cargo-ndk` - if: steps.cache-deps.outputs.cache-hit != 'true' - run: cargo install cargo-ndk --force - - - name: Build Rust lib - working-directory: ./mobile/native - run: cargo ndk -o ../android/app/src/main/jniLibs build - - - name: Parse version from pubspec.yaml - id: version - uses: jbutcher5/read-yaml@1.6 - with: - file: "mobile/pubspec.yaml" - key-path: '["version"]' - - - name: Build Android APK release - id: build - run: | - mkdir keystore - echo $ENCODED_KEYSTORE | base64 -d > keystore/upload-keystore.jks - BUILD_NAME=${{ steps.version.outputs.data }} - BUILD_NUMBER=$(git rev-list HEAD --count) - cd mobile - flutter build apk --dart-define="ELECTRS_ENDPOINT=$ELECTRS_ENDPOINT" --dart-define="COORDINATOR_P2P_ENDPOINT=$COORDINATOR_P2P_ENDPOINT" --dart-define="COMMIT=$(git rev-parse HEAD)" --dart-define="BRANCH=$(git rev-parse --abbrev-ref HEAD)" --build-name=$BUILD_NAME --build-number=$BUILD_NUMBER --release - mv build/app/outputs/flutter-apk/app-release.apk build/app/outputs/flutter-apk/get10101-$BUILD_NAME.apk - echo "ANDROID_APK_NAME=$(echo get10101-$BUILD_NAME.apk)" >> $GITHUB_OUTPUT - env: - SIGNING_KEY_ALIAS: ${{ secrets.ANDROID_UPLOAD_SIGNING_KEY_ALIAS }} - SIGNING_KEY_PASSWORD: ${{ secrets.ANDROID_UPLOAD_SIGNING_KEY_PASSWORD }} - SIGNING_STORE_PASSWORD: ${{ secrets.ANDROID_UPLOAD_SIGNING_STORE_PASSWORD }} - ENCODED_KEYSTORE: ${{ secrets.ANDROID_UPLOAD_KEYSTORE }} - ELECTRS_ENDPOINT: 35.189.57.114:50000 - COORDINATOR_P2P_ENDPOINT: 026e1de0e76902d71d2c27bfdda9d48c19c4c550f08bb4189d7208246e0e3af97e@35.189.57.114:9045 - - - name: Upload APK to job - uses: actions/upload-artifact@v3 - with: - name: ${{steps.build.outputs.ANDROID_APK_NAME}} - path: mobile/build/app/outputs/flutter-apk/${{steps.build.outputs.ANDROID_APK_NAME}} - release: needs: build if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release/')