name: Release on: workflow_dispatch: push: branches: - main - dev jobs: release: name: Release runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 with: # Make sure the release step uses its own credentials: # https://github.com/cycjimmy/semantic-release-action#private-packages persist-credentials: false fetch-depth: 0 - name: Setup JDK uses: actions/setup-java@v3 with: java-version: '17' distribution: 'zulu' cache: 'gradle' - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '18' cache: 'npm' - name: Setup Flutter uses: subosito/flutter-action@v2 with: channel: 'stable' cache: true - name: Install Flutter dependencies 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 }} 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: Setup semantic-release run: npm ci - name: Get release version run: npm exec -- semantic-release --dry-run id: get-next-version env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Add version to APK run: mv $SIGNED_FILE_PATH $(dirname $SIGNED_FILE_PATH)/revanced-manager-${{ steps.get-next-version.outputs.new-release-version }}.apk env: SIGNED_FILE_PATH: ${{steps.sign_apk.outputs.signedFile}} - name: Release env: GITHUB_TOKEN: ${{ secrets.REPOSITORY_PUSH_ACCESS }} run: npm exec semantic-release