Skip to content

v1.56-rc1 release draft #262

v1.56-rc1 release draft

v1.56-rc1 release draft #262

name: Build store Android project
on:
release:
types: [published]
jobs:
build-android:
name: Build Android
strategy:
fail-fast: false
matrix:
org: [atb, nfk, fram, troms]
environment: ${{ matrix.org }}
timeout-minutes: 180
runs-on: ubuntu-latest
steps:
- name: Check if release tag is org specific and exit for other orgs
if: ${{ (contains(github.ref, 'atb') && matrix.org != 'atb') ||
(contains(github.ref, 'nfk') && matrix.org != 'nfk') ||
(contains(github.ref, 'fram') && matrix.org != 'fram') ||
(contains(github.ref, 'troms') && matrix.org != 'troms') }}
run: exit 1
- name: Checkout project
uses: actions/checkout@v1
- name: Set global env vars
run: |
echo "BUILD_ID=$(date +%s)" >> $GITHUB_ENV
echo "APP_ENVIRONMENT=store" >> $GITHUB_ENV
echo "KEYSTORE_PATH=./android/app/keystore.jks" >> $GITHUB_ENV
echo "APK_FILE_NAME=app-store.apk" >> $GITHUB_ENV
echo "AAB_FILE_NAME=app-store.aab" >> $GITHUB_ENV
echo "JAVA_HOME=$JAVA_HOME_17_X64" >> $GITHUB_ENV
echo "/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin" >> $GITHUB_PATH
- name: Decrypt env files
run: bash ./scripts/git-crypt-unlock.sh
env:
GIT_CRYPT_KEY: ${{ secrets.GIT_CRYPT_KEY }}
- name: Add Entur private registry credentials
run: bash ./scripts/add-entur-private-registry.sh
env:
ENTUR_REGISTRY_USER: ${{ vars.ENTUR_REGISTRY_USER }}
ENTUR_REGISTRY_TOKEN: ${{ secrets.ENTUR_REGISTRY_TOKEN }}
- name: install node v18
uses: actions/setup-node@v1
with:
node-version: 18
- name: Install node_modules
run: yarn install --frozen-lockfile
- name: Setup ruby and bundle install
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.6
cache-version: 1
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- name: Get Github-release data
if: matrix.org == 'atb'
id: get_release
uses: bruceadams/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set environment
run: bash ./scripts/override-environment.sh $APP_ENVIRONMENT ${{ matrix.org }}
- name: Export workflow env variables based on environment
run: bash ./scripts/export-workflow-parameters.sh
- name: Override native config files
run: bash ./scripts/android/override-config-files.sh
- name: Decode Android keystore
run: bash ./scripts/android/create-keystore-file.sh
env:
KEYSTORE: ${{ secrets.KEYSTORE }}
- name: Generate native assets
run: yarn generate-native-assets
- name: Run fastlane build APK
if: (matrix.org == 'atb') || (matrix.org == 'nfk')
run: bundle exec fastlane android build
env:
KEYSTORE_PASS: ${{ secrets.KEYSTORE_PASS }}
KEY_PASS: ${{ secrets.KEYSTORE_KEY_PASS }}
KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
- name: Run fastlane build AAB
if: (matrix.org == 'fram') || (matrix.org == 'troms')
run: bundle exec fastlane android build_aab
env:
KEYSTORE_PASS: ${{ secrets.KEYSTORE_PASS }}
KEY_PASS: ${{ secrets.KEYSTORE_KEY_PASS }}
KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }}
- name: Distrubute APK to Google Play Internal Testing
if: (matrix.org == 'atb') || (matrix.org == 'nfk')
run: |
echo ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT}} | base64 --decode > google-play-service-account.json
bundle exec fastlane android playstore_internal
env:
GOOGLE_PLAY_SERVICE_ACCOUNT_PATH: google-play-service-account.json
ANDROID_PACKAGE_NAME: ${{ env.ANDROID_APPLICATION_ID }}
- name: Distrubute AAB to Google Play Internal Testing
if: (matrix.org == 'fram') || (matrix.org == 'troms')
run: |
echo ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT}} | base64 --decode > google-play-service-account.json
bundle exec fastlane android playstore_internal_aab
env:
GOOGLE_PLAY_SERVICE_ACCOUNT_PATH: google-play-service-account.json
ANDROID_PACKAGE_NAME: ${{ env.ANDROID_APPLICATION_ID }}
- name: Upload bundle and source maps
run: bash ./scripts/android/upload-sourcemaps.sh
env:
BUGSNAG_API_KEY: ${{ secrets.BUGSNAG_API_KEY }}
- name: Register app version
run: bash ./scripts/android/register-app-version.sh
env:
ENTUR_PUBLISH_CLIENT: ${{ secrets.ABT_ENTUR_PUBLISH_CLIENT_PRODUCTION }}
DISABLE_LISTED_ON_PLAY_STORE: false