name: Release on: workflow_dispatch: push: branches: - main - dev jobs: release: name: Release permissions: contents: write id-token: write attestations: write runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Java uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '17' - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: "lts/*" cache: 'npm' - name: Set up Flutter uses: subosito/flutter-action@v2 with: channel: stable flutter-version: 3.29.x cache: true - name: Cache Gradle uses: burrunan/gradle-cache-action@v3 with: build-root-directory: ${{ github.workspace }}/android - name: Install dependencies run: npm i - name: Get dependencies run: flutter pub get - name: Generate translations run: dart run slang - name: Generate code files run: dart run build_runner build --delete-conflicting-outputs - name: Setup keystore run: | echo "${{ secrets.KEYSTORE }}" | base64 --decode > "android/app/keystore.jks" - name: Semantic Release uses: cycjimmy/semantic-release-action@v4 id: semantic env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} KEYSTORE_ENTRY_ALIAS: ${{ secrets.KEYSTORE_ENTRY_ALIAS }} KEYSTORE_ENTRY_PASSWORD: ${{ secrets.KEYSTORE_ENTRY_PASSWORD }} - name: Attest if: steps.semantic.outputs.new_release_published == 'true' uses: actions/attest-build-provenance@v2 with: subject-path: build/app/outputs/apk/release/revanced-manager-*.apk