From d8f4b93254c49f5d4620d36e4610840808ef782a Mon Sep 17 00:00:00 2001 From: "Luong Vo (Lucas)" Date: Fri, 3 Nov 2023 16:34:34 +0700 Subject: [PATCH] Apply release-changelog-builder-action to generate changelog --- .../workflows/android_deploy_production.yml | 65 +++++-------------- .github/workflows/android_deploy_staging.yml | 21 ++++-- .github/workflows/changelog-config.json | 31 +++++++++ 3 files changed, 62 insertions(+), 55 deletions(-) create mode 100644 .github/workflows/changelog-config.json diff --git a/.github/workflows/android_deploy_production.yml b/.github/workflows/android_deploy_production.yml index aee293dd..30c04ea1 100644 --- a/.github/workflows/android_deploy_production.yml +++ b/.github/workflows/android_deploy_production.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - test-lucas jobs: build_and_deploy_android: @@ -15,57 +16,21 @@ jobs: - name: Check out uses: actions/checkout@v3 - - name: Set up Java JDK - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: '11' + - name: Find HEAD commit + id: head + run: echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT - - name: Set up Flutter environment - uses: subosito/flutter-action@v2 + - name: Build changelog on "main" + id: changelog + uses: mikepenz/release-changelog-builder-action@v4 with: - channel: 'stable' - flutter-version: '3.10.5' - - - name: Generate new project - run: | - dart pub global activate mason_cli - mason get - mason make template -c mason-config.json + configuration: ".github/workflows/changelog-config.json" + # Listing PRs from the last tag to the HEAD commit + toTag: ${{ steps.head.outputs.sha }} + token: ${{ secrets.GITHUB_TOKEN }} - - name: Get Flutter dependencies - run: flutter pub get - - - name: Run code generator - run: flutter packages pub run build_runner build --delete-conflicting-outputs - - - name: Set up .env - env: - ENV: ${{ secrets.ENV }} + - name: Print release notes run: | - echo -e "$ENV" > .env - - - name: Set up release signing configs - env: - ANDROID_RELEASE_KEYSTORE_BASE64: ${{ secrets.ANDROID_RELEASE_KEYSTORE_BASE64 }} - ANDROID_SIGNING_PROPERTIES: ${{ secrets.ANDROID_SIGNING_PROPERTIES }} - run: | - echo $ANDROID_RELEASE_KEYSTORE_BASE64 | base64 --decode > android/config/release.keystore - echo "$ANDROID_SIGNING_PROPERTIES" > android/signing.properties - - # App Bundle requires Firebase connected to Play Store to upload https://appdistribution.page.link/KPoa - - name: Build Android apk - run: flutter build apk --flavor production --release --build-number $GITHUB_RUN_NUMBER - - - name: Get PR information - uses: 8BitJonny/gh-get-current-pr@2.2.0 - id: PR - - - name: Deploy Android Production to Firebase - uses: wzieba/Firebase-Distribution-Github-Action@v1.5.0 - with: - appId: ${{ vars.FIREBASE_ANDROID_APP_ID }} - serviceCredentialsFileContent: ${{ secrets.FIREBASE_DISTRIBUTION_CREDENTIAL_JSON }} - groups: ${{ vars.FIREBASE_DISTRIBUTION_TESTER_GROUPS }} - releaseNotes: ${{ steps.PR.outputs.pr_body }} - file: build/app/outputs/flutter-apk/app-production-release.apk + echo categorized_prs ${{ steps.changelog.outputs.categorized_prs }} + echo uncategorized_prs ${{ steps.changelog.outputs.uncategorized_prs }} + echo "${{ steps.changelog.outputs.changelog }}" diff --git a/.github/workflows/android_deploy_staging.yml b/.github/workflows/android_deploy_staging.yml index 582f5491..1aabfed9 100644 --- a/.github/workflows/android_deploy_staging.yml +++ b/.github/workflows/android_deploy_staging.yml @@ -4,7 +4,7 @@ on: push: branches: - develop - - chore/198-test-merge-1 + - test-lucas jobs: build_and_deploy_android: @@ -16,10 +16,21 @@ jobs: - name: Check out uses: actions/checkout@v3 - - name: Get PR information - uses: 8BitJonny/gh-get-current-pr@2.2.0 - id: PR + - name: Find HEAD commit + id: head + run: echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + + - name: Build changelog on "develop" + id: changelog + uses: mikepenz/release-changelog-builder-action@v4 + with: + configuration: ".github/workflows/changelog-config.json" + # Listing PRs from the last tag to the HEAD commit + toTag: ${{ steps.head.outputs.sha }} + token: ${{ secrets.GITHUB_TOKEN }} - name: Print release notes run: | - echo ${{ steps.PR.outputs.pr_body }} + echo categorized_prs ${{ steps.changelog.outputs.categorized_prs }} + echo uncategorized_prs ${{ steps.changelog.outputs.uncategorized_prs }} + echo "${{ steps.changelog.outputs.changelog }}" diff --git a/.github/workflows/changelog-config.json b/.github/workflows/changelog-config.json new file mode 100644 index 00000000..9342c48e --- /dev/null +++ b/.github/workflows/changelog-config.json @@ -0,0 +1,31 @@ +{ + "categories": [ + { + "title": "## โœจ Features", + "labels": [ + "type : feature" + ] + }, + { + "title": "## ๐Ÿ› Bug fixes", + "labels": [ + "type : bug" + ] + }, + { + "title": "## ๐Ÿงน Chores", + "labels": [ + "type : chore" + ] + }, + { + "title": "## Others", + "exclude_labels": [ + "type : feature", + "type : bug", + "type : chore", + "type : release" + ] + } + ] +}