125 lines
3.9 KiB
YAML
125 lines
3.9 KiB
YAML
name: Manual QA Distribution
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
taskID:
|
|
description: 'Task ID'
|
|
required: true
|
|
default: 'NMA-'
|
|
flavor:
|
|
description: 'Flavor'
|
|
required: true
|
|
default: 'staging'
|
|
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"
|
|
},
|
|
"devnet": {
|
|
"firebase_app_id": "1:1039839682638:android:12d2ad31cc39093cea631f"
|
|
}
|
|
}
|
|
|
|
- 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: '17'
|
|
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@v4
|
|
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@v4
|
|
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:"" type:"debug"
|
|
|
|
- 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"
|