Build PR 1521 #318
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PR Build | |
on: | |
workflow_dispatch: | |
inputs: | |
# Flutter | |
flutter-branch: | |
description: Flutter branch | |
type: choice | |
default: 'stable' | |
options: | |
- stable | |
- beta | |
- dev | |
- master | |
flutter-cache: | |
description: Cache | |
type: boolean | |
default: true | |
# Application configuration | |
app-flavour: | |
description: App flavour | |
default: 'release' | |
type: choice | |
options: | |
- release | |
- debug | |
- profile | |
# Pull Request | |
pr-number: | |
description: PR number (No hashtag) | |
required: true | |
# Additional | |
flutter-build-arguments: | |
description: Flutter build arguments | |
run-name: "Build PR ${{ inputs.pr-number }}" | |
jobs: | |
build: | |
name: Build the application | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
pull-requests: write | |
steps: | |
- name: Setup the PR's repository | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
gh repo clone ${{ github.repository }} | |
cd revanced-manager | |
gh repo set-default ${{ github.repository }} | |
gh pr checkout ${{ inputs.pr-number }} | |
echo "DATETIME=$(TZ='UTC+0' date --rfc-email)" >> $GITHUB_ENV | |
echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Setup JDK | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'zulu' | |
cache: gradle | |
- name: Setup Flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
channel: ${{ inputs.flutter-branch }} | |
cache: ${{ inputs.flutter-cache }} | |
- name: Install Flutter dependencies | |
run: flutter pub get | |
- name: Generate files with Builder | |
run: dart run build_runner build --delete-conflicting-outputs | |
- name: Dart static analysis | |
uses: zgosalvez/github-actions-analyze-dart@v3 | |
- name: Build with Flutter | |
continue-on-error: true | |
id: flutter-build | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
flutter build apk --${{ inputs.app-flavour }} ${{ inputs.flutter-build-arguments }}; | |
- name: Prepare to comment | |
run: | | |
if [[ "${{ steps.flutter-build.outcome }}" == "success" ]]; then | |
echo "MESSAGE=β ReVanced Manager ${{ env.COMMIT_HASH }} build succeeded." >> $GITHUB_ENV | |
else | |
echo "MESSAGE=π« ReVanced Manager ${{ env.COMMIT_HASH }} build failed." >> $GITHUB_ENV | |
fi | |
- name: Upload build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: revanced-manager-(${{ env.COMMIT_HASH }}-${{ inputs.pr-number }}-${{ inputs.app-flavour }})-${{ inputs.flutter-branch }} | |
path: | | |
build/app/outputs/flutter-apk/app-${{ inputs.app-flavour }}.apk | |
build/app/outputs/flutter-apk/app-${{ inputs.app-flavour }}.apk.sha1 | |
- name: Get artifact URL | |
run: | | |
sudo apt install jq | |
ARTIFACT_URL=$(curl \ | |
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ | |
-s "https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts" | \ | |
jq -r ".artifacts[] | select(.name==\"revanced-manager-(${{ env.COMMIT_HASH }}-${{ inputs.pr-number }}-${{ inputs.app-flavour }})-${{ inputs.flutter-branch }}\") | .archive_download_url") | |
echo "ARTIFACT_URL=$ARTIFACT_URL" >> $GITHUB_ENV | |
- name: "Comment to Pull Request #${{ inputs.pr-number }}" | |
uses: thollander/actions-comment-pull-request@v2 | |
with: | |
GITHUB_TOKEN: ${{ github.token }} | |
pr_number: ${{ inputs.pr-number }} | |
mode: recreate | |
message: | | |
## βοΈ ReVanced PR Build workflow | |
${{ env.MESSAGE }} | |
Checkout the Dart static analyze check at [job summary](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}). | |
Directly download the [application artifact](${{ env.ARTIFACT_URL }}) here. | |
### βοΈ Overview | |
- App flavor: ${{ inputs.app-flavour }} | |
- Branch: ${{ inputs.flutter-branch }} | |
- Compile arguments: ${{ inputs.flutter-build-arguments }} | |
- Start time: ${{ env.DATETIME }} |