Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

Merge remote-tracking branch 'origin/release/3.2.x' into release/3.2.x #103

Merge remote-tracking branch 'origin/release/3.2.x' into release/3.2.x

Merge remote-tracking branch 'origin/release/3.2.x' into release/3.2.x #103

name: Create Release Candidate
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+*'
env:
JVM_OPTS: -Xmx4096m
GRADLE_OPTS: |
-Xmx1536m -XX:+HeapDumpOnOutOfMemoryError
-Dorg.gradle.caching=true
-Dorg.gradle.configureondemand=true
-Dkotlin.compiler.execution.strategy=in-process
-Dkotlin.incremental=false
jobs:
quick_build_device_for_testers_signed:
runs-on: ubuntu-latest
env:
keystore_download_token: '${{ secrets.KEYSTORE_DOWNLOAD_TOKEN }}'
keystore_download_url: '${{ secrets.KEYSTORE_DOWNLOAD_URL }}'
keystore_download_filename: '${{ secrets.KEYSTORE_DOWNLOAD_FILENAME }}'
environments_download_url: '${{ secrets.ENVIRONMENTS_DOWNLOAD_URL }}'
env_prop_download_filename: '${{ secrets.ENV_PROP_DOWNLOAD_FILENAME }}'
keystore_filename: '${{ secrets.KEYSTORE_FILENAME }}'
keystore_encrypt_key: '${{ secrets.KEYSTORE_ENCRYPT_KEY }}'
keystore_password: '${{ secrets.KEYSTORE_PASSWORD }}'
key_alias: '${{ secrets.KEY_ALIAS }}'
key_password: '${{ secrets.KEY_PASSWORD }}'
firebase_login_credentials: '${{ secrets.FIREBASE_LOGIN_CREDENTIALS }}'
firebase_app_id: '${{ secrets.FIREBASE_APP_ID }}'
steps:
- uses: actions/checkout@v3.1.0
- name: Copy CI gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
- name: Setup Ruby
uses: ruby/setup-ruby@v1.128.0
with:
ruby-version: '3.0'
bundler-cache: true
- name: Set up JDK 11
uses: actions/setup-java@v3.6.0
with:
java-version: '11'
distribution: 'temurin'
cache: gradle
- name: Download Keystore
run: |
curl --header "Authorization: token ${keystore_download_token}" --header "Accept: application/vnd.github.v3.raw" --remote-name --location "${keystore_download_url}${keystore_download_filename}"
- name: Download Environment Properties
run: |
curl --header "Authorization: token ${keystore_download_token}" --header "Accept: application/vnd.github.v3.raw" --remote-name --location "${environments_download_url}${env_prop_download_filename}"
- name: Decrypt Keystore
run: openssl enc -aes-256-cbc -d -pbkdf2 -iter 100000 -in $keystore_download_filename -out $keystore_filename -k $keystore_encrypt_key
- name: Prepare commit hash
run: |
echo $GITHUB_SHA
echo "" >> "./gradle.properties"
echo "commit_hash=${GITHUB_SHA}" >> "./gradle.properties"
- name: Prepare keystore properties for Signing
run: |
echo "" >> "./keystore.properties"
echo "deviceForTestersRelease.storePath=../${keystore_filename}" >> "./keystore.properties"
echo "deviceForTestersRelease.storePassword=${keystore_password}" >> "./keystore.properties"
echo "deviceForTestersRelease.keyAlias=${key_alias}" >> "./keystore.properties"
echo "deviceForTestersRelease.keyPassword=${key_password}" >> "./keystore.properties"
- name: Quick Build
run: ./gradlew -PdisablePreDex :Corona-Warn-App:assembleDeviceForTestersRelease
- name: Archive apk
uses: actions/upload-artifact@v3
with:
path: Corona-Warn-App/build/outputs/apk/deviceForTesters/release/*.apk
- name: Send to T-System
env:
tsystems_upload_url: '${{ secrets.TSYSTEM_UPLOAD_URL }}'
tsystems_upload_bearer: '${{ secrets.TSYSTEM_UPLOAD_BEARER }}'
run: |
fileName=$(find Corona-Warn-App/build/outputs/apk/deviceForTesters/release -name '*Corona-Warn-App*.apk')
file=$(basename $fileName)
version=$(echo $fileName | sed 's/.*App-//' | sed 's/-device.*//')
echo "${file}"
echo "${version}"
curl --location --request POST $tsystems_upload_url \
--header "Authorization: Bearer $tsystems_upload_bearer" \
--form "file=@${fileName}" \
--form "camera=true" \
--form "uniqueName=${version}"
- name: Trigger App Automation Testing
env:
GITHUB_ACCESS_TOKEN: '${{ secrets.ACCESS_TOKEN_GITHUB }}'
run: |
curl \
-X POST \
-H "Accept: application/vnd.github.v3+json" \
-H "authorization: Bearer $GITHUB_ACCESS_TOKEN" \
-d "{\"ref\":\"main\"}" \
https://api.github.com/repos/corona-warn-app/cwa-app-automation/actions/workflows/32064115/dispatches
- name: Configure Fastlane
run: |
apk_path=$(find Corona-Warn-App/build/outputs/apk/deviceForTesters/release -name '*Corona-Warn-App*.apk')
echo "apk_path=$apk_path" >> $GITHUB_ENV
echo "release_tag=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
echo $firebase_login_credentials | base64 -di > ./fastlane/service_credentials.json
- name: Run Fastlane
run: bundle exec fastlane firebaseAppDistribution
- name: Notify Teams
run: |
curl -H 'Content-Type: application/json' -d '{"text": "Release [`${{ env.release_tag }}`](https://github.com/corona-warn-app/cwa-app-android/releases/tag/${{ env.release_tag }}) is ready for testing"}' ${{ secrets.TEAMS_WEBHOOK_URL }}