Skip to content

Commit

Permalink
chore: only release apk on release creation
Browse files Browse the repository at this point in the history
  • Loading branch information
bonomat committed Apr 14, 2023
1 parent 98aa282 commit 43c2b8b
Show file tree
Hide file tree
Showing 2 changed files with 112 additions and 108 deletions.
112 changes: 112 additions & 0 deletions .github/workflows/build-release-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ on:
release:
types: [created]

env:
FLUTTER_VERSION: "3.7.7"
RUST_VERSION: "1.68.0"

jobs:
build_testflight_release:
permissions:
Expand All @@ -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/[email protected]
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}}
108 changes: 0 additions & 108 deletions .github/workflows/create_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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/[email protected]
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/')
Expand Down

0 comments on commit 43c2b8b

Please sign in to comment.