-
-
Notifications
You must be signed in to change notification settings - Fork 761
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ci(build): Improve pull request build (#1305)
Co-authored-by: oSumAtrIX <[email protected]>
- Loading branch information
Showing
1 changed file
with
94 additions
and
18 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,45 +1,121 @@ | ||
name: PR Build | ||
|
||
on: | ||
pull_request: | ||
paths: | ||
- ".github/workflows/pr-build.yml" | ||
- "android/**" | ||
- "assets/**" | ||
- "lib/**" | ||
|
||
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 | ||
|
||
run-name: "Build PR ${{ inputs.pr-number }}" | ||
|
||
jobs: | ||
build: | ||
name: Build | ||
name: Build the application | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
pull-requests: write | ||
steps: | ||
- name: Setup | ||
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 | ||
uses: actions/checkout@v4 | ||
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 Flutter | ||
uses: subosito/flutter-action@v2 | ||
with: | ||
channel: 'stable' | ||
cache: true | ||
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 | ||
run: dart run build_runner build --delete-conflicting-outputs | ||
|
||
- name: Build with Flutter | ||
env: | ||
continue-on-error: true | ||
id: flutter-build | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
run: flutter build apk --debug | ||
run: | | ||
flutter build apk --${{ inputs.app-flavour }}; | ||
- 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: "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 }} | ||
You can see more details in run [${{ github.run_id }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})! | ||
### ⚙️ Overview | ||
- App flavor: ${{ inputs.app-flavour }} | ||
- Branch: ${{ inputs.flutter-branch }} | ||
- Start time: ${{ env.DATETIME }} | ||
- name: Upload build | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: revanced-manager | ||
path: build/app/outputs/flutter-apk/app-debug.apk | ||
if-no-files-found: error | ||
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 |