Skip to content

release-android

release-android #2590

name: release-android
on:
workflow_run:
workflows:
- daily-build
types:
- completed
workflow_dispatch:
inputs:
is-split-bundle:
description: "Should it run as split-bundle? (keep it null if you don't need it)"
required: false
default: ''
jobs:
release-android:
runs-on: ubuntu-latest
if: ${{ !github.event.workflow_run || (github.event.workflow_run && github.event.workflow_run.conclusion == 'success') }}
steps:
- uses: actions/checkout@v3
with:
lfs: true
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 20.x
registry-url: 'https://npm.pkg.github.com'
always-auth: true
scope: '@onekeyhq'
- name: Setup keys secret
run: |
echo ${{ secrets.AUTO_SUBMIT_GOOGLE_PLAY_KEY }} | base64 -d > apps/mobile/pc-api-8644398719570171123-0-dcae07e2afab.json
rm -rf apps/mobile/android/app/google-services.json
echo ${{ secrets.GOOGLE_SERVICE_ANDROID }} | base64 -d > apps/mobile/android/app/google-services.json
- name: Setup Expo
uses: OneKeyHQ/actions/expo-server@main
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: Setup ENV BUILD_NUMBER to 1
if: ${{ !github.event.workflow_run }}
run: |
# Generate build number ------- start
echo "BUILD_NUMBER=1" >> $GITHUB_ENV
# Generate build number ------- end
- name: Setup ENV BUILD_NUMBER by workflow_run
if: ${{ github.event.workflow_run }}
run: |
echo "ActionTriggerBy = ${{ github.event.action }} / ${{ github.event_name }}"
# Generate build number ------- start
DATE=`date "+%Y%m%d"`
run_number=$(($workflow_run_number % 100))
run_number=$(printf "%02d" $run_number)
build_number="${DATE}${run_number}"
echo '$build_number='$build_number
echo "BUILD_NUMBER=$build_number" >> $GITHUB_ENV
# Generate build number ------- end
env:
workflow_run_number: ${{ github.event.workflow_run.run_number}}
- name: Dotenv Action
id: dotenv
uses: OneKeyHQ/actions/dotenv-action@main
with:
path: .env.version
- name: Modify build.gradle
uses: OneKeyHQ/actions/build-gradle-edit@main
with:
versionCode: ${{ env.BUILD_NUMBER }}
versionName: ${{ steps.dotenv.outputs.version }}
packageName: 'so.onekey.app.wallet'
android_dir: ./apps/mobile
- name: Write .env.version
run: |
# pass BUILD_NUMBER as env variable to expo server
echo "BUILD_NUMBER=${{ env.BUILD_NUMBER }}" >> .env.version
- name: Inject Environment Variables
env:
COVALENT_KEY: ${{ secrets.COVALENT_KEY }}
GITHUB_SHA: ${{ github.sha }}
SENTRY_TOKEN: ${{ secrets.SENTRY_TOKEN }}
run: |
echo "COVALENT_KEY=${{ env.COVALENT_KEY }}" >> .env.expo
echo "GITHUB_SHA=${{ env.GITHUB_SHA }}" >> .env.expo
echo "SPLIT_BUNDLE=${{ inputs.is-split-bundle }}" >> .env.expo
echo "NO_FLIPPER=1" >> .env.expo
echo "SENTRY_DISABLE_AUTO_UPLOAD=false" >> .env.expo
echo "SENTRY_AUTH_TOKEN=${{ env.SENTRY_TOKEN }}" >> .env.expo
- name: Write .sentry.properties
run: |
echo "auth.token=${{ secrets.SENTRY_TOKEN }}" >> apps/mobile/android/sentry.properties
- name: Install Dep
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_OPTIONS: '--max_old_space_size=8192'
run: |
yarn
- name: Build on EAS And Submit
if: ${{ github.event.workflow_run }}
run: |
cd apps/mobile
eas build --profile=production --platform android --non-interactive --no-wait --resource-class large
eas build --profile=production-store --platform android --non-interactive --no-wait --resource-class large --auto-submit
# eas build --profile=production-huawei --platform android --non-interactive --no-wait --resource-class large
- name: Build on EAS
if: ${{ !github.event.workflow_run }}
run: |
cd apps/mobile
eas build --profile=production --platform android --non-interactive --no-wait --resource-class large