Skip to content

Release

Release #52

Workflow file for this run

name: Release
on:
push:
tags:
- '*'
jobs:
detekt:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
- name: Gradle cache
uses: gradle/gradle-build-action@v2
with:
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
- name: Detekt ♻️
run: ./gradlew detekt
unit_tests:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
- name: Gradle cache
uses: gradle/gradle-build-action@v2
with:
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
- name: Decode google-services.json
env:
FIREBASE_CONFIG: ${{ secrets.GOOGLE_SERVICES_JSON }}
run: echo $FIREBASE_CONFIG > app/google-services.json
- name: Unit tests
run: ./gradlew test -x :screenshot_testing:test
screenshot_tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
- name: Decode google-services.json
env:
FIREBASE_CONFIG: ${{ secrets.GOOGLE_SERVICES_JSON }}
run: echo $FIREBASE_CONFIG > app/google-services.json
- name: 📸 Snapshot tests
run: ./gradlew verifyPaparazziDebug
build:
needs: [ unit_tests, screenshot_tests ]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
- name: Gradle cache
uses: gradle/gradle-build-action@v2
with:
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
- name: Decode google-services.json
env:
FIREBASE_CONFIG: ${{ secrets.GOOGLE_SERVICES_JSON }}
run: echo $FIREBASE_CONFIG > app/google-services.json
- name: Decode keystore
run: |
echo "${{ secrets.SIGNING_KEY_BASE_64 }}" > release.keystore.asc
gpg -d --passphrase "${{ secrets.KEY_STORE_PASSWORD }}" --batch release.keystore.asc > release.keystore
- name: Generate Release Bundle
run: ./gradlew bundleProductionRelease
env:
SIGNING_KEY_ALIAS: ${{ secrets.ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
SIGNING_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
- name: Upload artifact
uses: actions/upload-artifact@master
with:
name: bundle
path: app/build/outputs/bundle/productionRelease/app-production-release.aab
- name: Upload mapping.txt
uses: actions/upload-artifact@master
with:
name: mapping.txt
path: app/build/outputs/mapping/productionRelease/mapping.txt
deploy-play-store:
needs: [ build ]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
- name: Gradle cache
uses: gradle/gradle-build-action@v2
with:
cache-read-only: ${{ github.ref != 'refs/heads/develop' }}
- name: Decode google-services.json
env:
FIREBASE_CONFIG: ${{ secrets.GOOGLE_SERVICES_JSON }}
run: echo $FIREBASE_CONFIG > app/google-services.json
- name: Download artifact
uses: actions/download-artifact@master
with:
name: bundle
- name: Download mapping.txt
uses: actions/download-artifact@master
with:
name: mapping.txt
- name: Publish to Play Store
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: com.costular.atomtasks
releaseFiles: app-production-release.aab
track: alpha
mappingFile: mapping.txt
whatsNewDirectory: whatsNew