GT-2264 Convert Tool Details to Circuit #5423
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: Build App | |
on: | |
push: | |
branches: [develop, master, feature/*] | |
pull_request: | |
branches: [develop, master, feature/*] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Build App | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Build App | |
run: ./gradlew bundle --scan | |
ktlint: | |
name: ktlint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Run ktlint | |
run: ./gradlew :build-logic:ktlintCheck ktlintCheck --scan | |
- name: Archive ktlint results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ktlint-results | |
path: "**/build/reports/ktlint/" | |
lint: | |
name: Lint Checks | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Run Lint Checks | |
run: ./gradlew lint --scan | |
- name: Archive lint results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: lint-results | |
path: "**/build/reports/lint-results*.*" | |
tests: | |
name: Unit Tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
testShard: [1, 2, 3, 4] | |
env: | |
ORG_GRADLE_PROJECT_testShard: ${{ matrix.testShard }} | |
ORG_GRADLE_PROJECT_testTotalShards: 4 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Cache Maven | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Run Unit Tests | |
run: ./gradlew test koverXmlReportDebug koverXmlReportProductionDebug --max-workers 1 --scan | |
- name: Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
verbose: true | |
- name: Archive Unit Test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: unit-test-results-${{ matrix.testShard }} | |
path: "**/build/reports/tests/" | |
qa_build: | |
name: Deploy QA Build | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' && github.ref == 'refs/heads/develop' | |
needs: [build, ktlint, lint, tests] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Import Firebase API Key | |
env: | |
FIREBASE_API_KEY: ${{ secrets.FIREBASE_API_KEY }} | |
run: echo $FIREBASE_API_KEY > firebase/firebase_api_key.json | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: "temurin" | |
java-version-file: ".java-version" | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
with: | |
cache-read-only: true | |
- name: Build QA Universal APK | |
run: ./gradlew :app:packageProductionQaUniversalApk -PfirebaseAppDistributionBuild --scan | |
env: | |
ORG_GRADLE_PROJECT_firebaseAppDistributionKeystoreStorePassword: ${{ secrets.BETA_KEYSTORE_PASSWORD }} | |
ORG_GRADLE_PROJECT_firebaseAppDistributionKeystoreKeyPassword: ${{ secrets.BETA_KEYSTORE_PASSWORD }} | |
- name: Upload QA Build to Firebase | |
run: ./gradlew appDistributionUploadProductionQa -PfirebaseAppDistributionBuild --scan |