Skip to content

Manual QA Distribution #795

Manual QA Distribution

Manual QA Distribution #795

name: Manual QA Distribution
on:
workflow_dispatch:
inputs:
taskID:
description: 'Task ID'
required: true
default: 'NMA-'
flavor:
description: 'Flavor'
required: true
default: '_testNet3'
type:
description: 'Type'
required: true
default: 'release'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Map flavor to firebase app id
uses: kanga333/variable-mapper@master
with:
key: "${{ github.event.inputs.flavor }}"
map: |
{
"prod": {
"firebase_app_id": "1:1039839682638:android:989eecd6db36de6a"
},
"_testNet3": {
"firebase_app_id": "1:1039839682638:android:3202b16d460a1a88"
},
"staging": {
"firebase_app_id": "1:1039839682638:android:bbcfa8c9939ee993ea631f"
},
"schnapps": {
"firebase_app_id": "1:1039839682638:android:12d2ad31cc39093cea631f"
},
"devnet": {
"firebase_app_id": "1:1039839682638:android:fdff563e24b69c5fea631f"
}
}
- name: Get build number from run id
env:
run_num: ${{ github.run_number }}
run: |
echo "build_number=$((70000+$run_num))" >> $GITHUB_ENV
- name: Get the support email
env:
SUPPORT_EMAIL: "${{ secrets.INTERNAL_SUPPORT_EMAIL }}"
run: |
echo "SUPPORT_EMAIL=$SUPPORT_EMAIL" >> $GITHUB_ENV
- uses: actions/checkout@v3
- name: set up JDK
uses: actions/setup-java@v3
with:
java-version: '16'
distribution: 'adopt'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.0.3'
- name: Generate cache key
run: bash .deploy/checksum.sh checksum.txt
- name: Gem caching
uses: actions/cache@v2
continue-on-error: true
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Setup fastlane
run: |
gem install bundler:2.2.26
gem install google-cloud-storage
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- name: Cache Gradle packages
uses: actions/cache@v2
continue-on-error: true
with:
path: |
~/.gradle/caches/modules-*
~/.gradle/caches/jars-*
~/.gradle/caches/build-cache-*
key: ${{ runner.os }}-gradle-${{ hashFiles('checksum.txt') }}
- name: Decrypt secrets
run: |
gpg -d --passphrase "${{ secrets.KEYSTORE_KEY }}" --batch .deploy/keystore.jks.gpg > .deploy/keystore.jks
- name: Extract Secrets
run: |
echo "$GOOGLE_SERVICES_JSON" > wallet/google-services.json
echo "$SERVICE_PROPERTIES" > service.properties
echo "$LOCAL_PROPERTIES" > local.properties
echo "$APP_DISTRIBUTION_KEY_JSON" > .deploy/app-distribution-key.json
echo "$GC_STORAGE_SERVICE_ACCOUNT_KEY_JSON" > .deploy/gc-storage-service-account.json
env:
GOOGLE_SERVICES_JSON : ${{secrets.GOOGLE_SERVICES_JSON}}
SERVICE_PROPERTIES: ${{secrets.SERVICE_PROPERTIES}}
LOCAL_PROPERTIES: ${{secrets.LOCAL_PROPERTIES}}
APP_DISTRIBUTION_KEY_JSON: ${{secrets.APP_DISTRIBUTION_KEY_JSON}}
GC_STORAGE_SERVICE_ACCOUNT_KEY_JSON: ${{secrets.GC_STORAGE_SERVICE_ACCOUNT_KEY_JSON}}
- name: Test
run: bundle exec fastlane test flavor:"${{ github.event.inputs.flavor }}" type:"${{ github.event.inputs.type }}" versioncode:"${{ env.build_number }}" storepass:"${{ secrets.SIGNING_STORE_PASS }}"
- name: Build and Firebase Distribution
run: bundle exec fastlane build_distribute flavor:"${{ github.event.inputs.flavor }}" type:"${{ github.event.inputs.type }}" versioncode:"${{ env.build_number }}" storepass:"${{ secrets.SIGNING_STORE_PASS }}" comment:"${{ github.event.inputs.taskID }}" appid:"${{ env.firebase_app_id }}" testgroup:"qa"