name: "Release Build"

on:
  push:
    tags:
      - "v*"

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set env
        run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
      - name: Set up JDK 12
        uses: actions/setup-java@v3
        with:
          java-version: "12"
          distribution: "zulu"
      - uses: subosito/flutter-action@v2
        with:
          channel: "stable"
      - name: Set up Flutter
        run: flutter pub get
      - name: Generate files with Builder
        run: flutter packages pub run build_runner build --delete-conflicting-outputs
      - name: Build with Flutter
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
          SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
          SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
        run: flutter build apk
      - name: Sign APK
        id: sign_apk
        uses: ilharp/sign-android-release@v1
        with:
          releaseDir: build/app/outputs/apk/release
          signingKey: ${{ secrets.SIGNING_KEYSTORE }}
          keyStorePassword: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
          keyAlias: ${{ secrets.SIGNING_KEY_ALIAS }}
          keyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }}
      - name: Add version to APK
        run: mv ${{steps.sign_apk.outputs.signedFile}} revanced-manager-${{ env.RELEASE_VERSION }}.apk
      - name: Publish release APK
        uses: "marvinpinto/action-automatic-releases@latest"
        with:
          repo_token: "${{ secrets.GITHUB_TOKEN }}"
          prerelease: false
          files: revanced-manager-${{ env.RELEASE_VERSION }}.apk