name: "QA"

on:
  pull_request:
    branches: [ master, stable-* ]

permissions:
  pull-requests: write
  contents: read

concurrency:
  group: qa-build-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

jobs:
  qa:
    runs-on: ubuntu-latest
    steps:
      - name: Check if secrets are available
        run: echo "::set-output name=ok::${{ secrets.KS_PASS != '' }}"
        id: check-secrets
      - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
        if: ${{ steps.check-secrets.outputs.ok == 'true' }}
      - name: set up JDK 17
        uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4.0.0
        if: ${{ steps.check-secrets.outputs.ok == 'true' }}
        with:
          distribution: "temurin"
          java-version: 17
      - name: Build QA
        if: ${{ steps.check-secrets.outputs.ok == 'true' }}
        env:
          KS_PASS: ${{ secrets.KS_PASS }}
          KEY_PASS: ${{ secrets.KEY_PASS }}
          LOG_USERNAME: ${{ secrets.LOG_USERNAME }}
          LOG_PASSWORD: ${{ secrets.LOG_PASSWORD }}
        run: |
          mkdir -p $HOME/.gradle
          echo "org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError" > $HOME/.gradle/gradle.properties
          sed -i "/qa/,/\}/ s/versionCode .*/versionCode ${{github.event.number}} /" app/build.gradle
          sed -i "/qa/,/\}/ s/versionName .*/versionName \"${{github.event.number}}\"/" app/build.gradle
          ./gradlew assembleQaDebug
          $(find /usr/local/lib/android/sdk/build-tools/*/apksigner | sort | tail -n1) sign  --ks-pass pass:$KS_PASS --key-pass pass:$KEY_PASS --ks-key-alias key0 --ks scripts/QA_keystore.jks app/build/outputs/apk/qa/debug/app-qa-*.apk
          sudo scripts/uploadArtifact.sh $LOG_USERNAME $LOG_PASSWORD ${{github.event.number}} ${{github.event.number}} ${{ secrets.GITHUB_TOKEN }}