name: Create release on: push: tags: - 'v*' - '!v*alpha*' - '!v*beta*' jobs: build: name: Create release permissions: contents: write runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 - uses: gradle/actions/setup-gradle@v3 - name: Prepare keystore run: echo ${{ secrets.android_keystore_base64 }} | base64 -d >$GITHUB_WORKSPACE/keystore.jks - name: Build signed package for OSE run: ./gradlew app:assembleOseRelease env: ANDROID_KEYSTORE: ${{ github.workspace }}/keystore.jks ANDROID_KEYSTORE_PASSWORD: ${{ secrets.android_keystore_password }} ANDROID_KEY_ALIAS: ${{ secrets.android_key_alias }} ANDROID_KEY_PASSWORD: ${{ secrets.android_key_password }} CROWDIN_API_KEY: ${{ secrets.crowdin_api_key }} GOOGLE_GEO_API_KEY: ${{ secrets.google_geo_api_key }} GH_CONTRIBUTORS_API_KEY: ${{ secrets.gh_contributors_api_key }} - name: Build signed package for Amazon run: ./gradlew app:assembleAmazonRelease env: ANDROID_KEYSTORE: ${{ github.workspace }}/keystore.jks ANDROID_KEYSTORE_PASSWORD: ${{ secrets.android_keystore_password }} ANDROID_KEY_ALIAS: ${{ secrets.android_key_alias }} ANDROID_KEY_PASSWORD: ${{ secrets.android_key_password }} CROWDIN_API_KEY: ${{ secrets.crowdin_api_key }} GOOGLE_GEO_API_KEY: ${{ secrets.google_geo_api_key }} GH_CONTRIBUTORS_API_KEY: ${{ secrets.gh_contributors_api_key }} - name: Build app bundle release (AAB) for Gplay run: ./gradlew app:bundleGplayRelease env: ANDROID_KEYSTORE: ${{ github.workspace }}/keystore.jks ANDROID_KEYSTORE_PASSWORD: ${{ secrets.android_keystore_password }} ANDROID_KEY_ALIAS: ${{ secrets.android_key_alias }} ANDROID_KEY_PASSWORD: ${{ secrets.android_key_password }} CROWDIN_API_KEY: ${{ secrets.crowdin_api_key }} GOOGLE_GEO_API_KEY: ${{ secrets.google_geo_api_key }} GH_CONTRIBUTORS_API_KEY: ${{ secrets.gh_contributors_api_key }} - name: Generate archive run: tar -cJvf release-${{ github.ref_name }}.tar.xz app/build/outputs/apk/ app/build/outputs/mapping/*/mapping.txt app/build/outputs/bundle/gplayRelease/ env: XZ_OPT: -9 - name: Copy OSE apk to root run: cp app/build/outputs/apk/ose/release/app-ose-release.apk jtxBoard-${{ github.ref_name }}.apk - name: Create Github release uses: softprops/action-gh-release@v2.0.4 with: prerelease: ${{ contains(github.ref_name, '-alpha') || contains(github.ref_name, '-beta') || contains(github.ref_name, '-rc') }} files: | release-${{ github.ref_name }}.tar.xz jtxBoard-${{ github.ref_name }}.apk generate_release_notes: true fail_on_unmatched_files: true - name: Upload jtxBoard-gplay to Google Play uses: r0adkll/upload-google-play@v1 with: serviceAccountJsonPlainText: ${{ secrets.google_play_service_account_json }} packageName: at.techbee.jtx releaseFiles: app/build/outputs/bundle/gplayRelease/*.aab track: internal status: completed