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
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |