-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Android release process #1779
Changes from 27 commits
3457c7e
741c380
826062e
b26afa3
fd4d19a
bebee05
1452725
f0e3ae2
a1736ea
081598f
5c24975
d973340
2226f16
38d5a39
0d0a7f7
1f958f4
644a965
f5b2df7
28359d5
7da8aeb
6eef65a
ae107fa
5d32930
06f507c
9cc4481
8a59e41
ca2a4c6
96f8e21
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,167 @@ | ||
name: Release android app | ||
|
||
on: | ||
workflow_dispatch: | ||
jobs: | ||
#it's tests but build job is required in our branch policies | ||
build: | ||
name: Build android unit test | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- name: Cancel Previous Runs | ||
uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 # 0.11.0 | ||
with: | ||
access_token: ${{ github.token }} | ||
|
||
- name: Checkout Sources | ||
uses: actions/[email protected] | ||
with: | ||
fetch-depth: 50 | ||
submodules: 'recursive' | ||
|
||
- name: Install System Dependencies (Linux) | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y clang libclang-dev libopencv-dev | ||
|
||
- name: Install Rust stable toolchain | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
toolchain: stable | ||
override: true | ||
|
||
- name: Install uniffi_bindgen | ||
uses: actions-rs/[email protected] | ||
with: | ||
crate: uniffi_bindgen | ||
version: 0.22.0 # Must be in sync with version in Cargo.toml | ||
use-tool-cache: true | ||
|
||
- name: Install additional rust targets | ||
run: rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android | ||
|
||
- name: Set up JDK environment | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'adopt' | ||
java-version: 11 | ||
|
||
- name: Install NDK | ||
run: echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;24.0.8215888" --sdk_root=${ANDROID_SDK_ROOT} | ||
|
||
- name: Rust Cache | ||
uses: Swatinem/rust-cache@6fd3edff6979b79f87531400ad694fb7f2c84b1f # v2.2.1 | ||
with: | ||
workspaces: rust -> rust/target | ||
|
||
- name: Gradle Cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.gradle/caches | ||
~/.gradle/wrapper | ||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/.gradle*', '**/gradle-wrapper.properties') }} | ||
restore-keys: | | ||
${{ runner.os }}-gradle- | ||
|
||
- name: Build | ||
run: | | ||
./gradlew :android:testDebugUnitTest | ||
|
||
make: | ||
name: Build signed APKs | ||
runs-on: ubuntu-22.04 | ||
# if: github.ref == ' refs/head/main' | ||
steps: | ||
- name: Cancel Previous Runs | ||
uses: styfle/cancel-workflow-action@b173b6ec0100793626c2d9e6b90435061f4fc3e5 # 0.11.0 | ||
with: | ||
access_token: ${{ github.token }} | ||
|
||
- name: Checkout Sources | ||
uses: actions/[email protected] | ||
with: | ||
fetch-depth: 50 | ||
submodules: 'recursive' | ||
|
||
- name: Install System Dependencies (Linux) | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y clang libclang-dev libopencv-dev | ||
|
||
- name: Install Rust stable toolchain | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
profile: minimal | ||
toolchain: stable | ||
override: true | ||
|
||
- name: Install uniffi_bindgen | ||
uses: actions-rs/[email protected] | ||
with: | ||
crate: uniffi_bindgen | ||
version: 0.22.0 # Must be in sync with version in Cargo.toml | ||
use-tool-cache: true | ||
|
||
- name: Install additional rust targets | ||
run: rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android | ||
|
||
- name: Set up JDK environment | ||
uses: actions/setup-java@v3 | ||
with: | ||
distribution: 'adopt' | ||
java-version: 11 | ||
|
||
- name: Install NDK | ||
run: echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;24.0.8215888" --sdk_root=${ANDROID_SDK_ROOT} | ||
|
||
- name: Rust Cache | ||
uses: Swatinem/rust-cache@6fd3edff6979b79f87531400ad694fb7f2c84b1f # v2.2.1 | ||
with: | ||
workspaces: rust -> rust/target | ||
|
||
- name: Gradle Cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.gradle/caches | ||
~/.gradle/wrapper | ||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/.gradle*', '**/gradle-wrapper.properties') }} | ||
restore-keys: | | ||
${{ runner.os }}-gradle- | ||
|
||
# Build and publish | ||
|
||
- name: Assemble release unsigned apk | ||
run: | | ||
./gradlew clean assembleRelease --stacktrace | ||
|
||
- name: Sign app APK | ||
uses: r0adkll/sign-android-release@v1 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This repository seems abandoned. Could we use another one? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think it's ok as signing didn't change - it is very small task and this usually not changed. I've tested it already and current signing working fine. Most probably we will not need to change it. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It uses deprecated Node12, so one day it'll stop working |
||
# ID used to access action output | ||
id: sign_app | ||
with: | ||
releaseDirectory: android/build/outputs/apk/release | ||
signingKeyBase64: ${{ secrets.ANDROID_PLAY_STORE_KEYSTORE_BASE64 }} | ||
alias: ${{ secrets.ANDROID_KEYSTORE_KEY_ALIAS }} | ||
keyStorePassword: ${{ secrets.ANDROID_PLAY_STORE_KEYSTORE_PASSWORD }} | ||
keyPassword: ${{ secrets.ANDROID_PLAY_STORE_KEYSTORE_PASSWORD }} | ||
|
||
- name: Upload Gplay release APKs | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: signer-release-signed | ||
path: | | ||
${{steps.sign_app.outputs.signedReleaseFile}} | ||
|
||
- name: Publish to Google Play Store | ||
uses: r0adkll/[email protected] | ||
with: | ||
serviceAccountJsonPlainText: ${{ secrets.ANDROID_PLAY_STORE_API_JSON }} | ||
releaseFiles: ${{ steps.sign_app.outputs.signedReleaseFile }} | ||
packageName: io.parity.signer | ||
track: internal | ||
|
||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You need to revert to
Build
for name as this is required check for PR mergeThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done. Thank you.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Judging by PR status I think it’s still outstanding @Dmitry-Borodin