From f5a71bd6df5adc90977b9d88bc0db77eac5df066 Mon Sep 17 00:00:00 2001 From: Luong Vo Date: Mon, 6 Nov 2023 10:44:32 +0700 Subject: [PATCH 1/4] [#525] Define create_release_pr workflow to automate Release PR creating --- .../workflows/config/changelog-release.json | 35 ++++++++++ .github/workflows/create_release_pr.yml | 66 +++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 .github/workflows/config/changelog-release.json create mode 100644 .github/workflows/create_release_pr.yml diff --git a/.github/workflows/config/changelog-release.json b/.github/workflows/config/changelog-release.json new file mode 100644 index 000000000..34c629417 --- /dev/null +++ b/.github/workflows/config/changelog-release.json @@ -0,0 +1,35 @@ +{ + "categories": [ + { + "title": "## โœจ Features", + "labels": [ + "type : feature" + ], + "empty_content": "N/A" + }, + { + "title": "## ๐Ÿ› Bug fixes", + "labels": [ + "type : bug" + ], + "empty_content": "N/A" + }, + { + "title": "## ๐Ÿงน Chores", + "labels": [ + "type : chore" + ], + "empty_content": "N/A" + }, + { + "title": "## Others", + "exclude_labels": [ + "type : feature", + "type : bug", + "type : chore", + "type : release" + ] + } + ], + "max_pull_requests": 200 +} diff --git a/.github/workflows/create_release_pr.yml b/.github/workflows/create_release_pr.yml new file mode 100644 index 000000000..3e53718d8 --- /dev/null +++ b/.github/workflows/create_release_pr.yml @@ -0,0 +1,66 @@ +name: Create the Release pull request + +on: + workflow_dispatch: + +jobs: + create_release_pr: + name: Create the Release pull request + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + - name: Checkout the latest code + uses: actions/checkout@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Read the current version + id: version + uses: christian-draeger/read-properties@1.1.1 + with: + path: "version.properties" + properties: "templateScriptVersion" + + - name: Find HEAD commit + id: head + run: echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + + - name: Build changelog + id: changelog + uses: mikepenz/release-changelog-builder-action@v4 + with: + configuration: ".github/workflows/config/changelog-release.json" + # Listing PRs from the last tag to the HEAD commit + toTag: ${{ steps.head.outputs.sha }} + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Create the Release pull request + env: + GH_TOKEN: ${{ github.token }} + run: | + VERSION=${{ steps.version.outputs.templateScriptVersion }} + BASE_BRANCH=main + HEAD_BRANCH=release/$VERSION + + # Fetch milestone info + gh extension install valeriobelli/gh-milestone + MILESTONE=$VERSION + MILESTONE_URL=$(gh milestone list --query $MILESTONE --json url --jq ".[0].url") + + # Create the release branch + git checkout -b $HEAD_BRANCH + git push origin $HEAD_BRANCH + + # Create the pull request + gh pr create \ + --base $BASE_BRANCH \ + --head $HEAD_BRANCH \ + --assignee "bot-nimble" \ + --title "Release - $VERSION" \ + --label 'type : release' \ + --milestone $MILESTONE \ + --body "$MILESTONE_URL + + ${{ steps.changelog.outputs.changelog }}" \ From 85921150cd18b6544c7423bfd953490aa2603347 Mon Sep 17 00:00:00 2001 From: Luong Vo Date: Fri, 24 Nov 2023 11:26:07 +0700 Subject: [PATCH 2/4] [#525] Reuse the "Create the Release PR" composite workflow --- .github/workflows/create_release_pr.yml | 46 +++---------------------- 1 file changed, 4 insertions(+), 42 deletions(-) diff --git a/.github/workflows/create_release_pr.yml b/.github/workflows/create_release_pr.yml index 3e53718d8..cc1e4d0c9 100644 --- a/.github/workflows/create_release_pr.yml +++ b/.github/workflows/create_release_pr.yml @@ -13,8 +13,6 @@ jobs: steps: - name: Checkout the latest code uses: actions/checkout@v3 - with: - token: ${{ secrets.GITHUB_TOKEN }} - name: Read the current version id: version @@ -23,44 +21,8 @@ jobs: path: "version.properties" properties: "templateScriptVersion" - - name: Find HEAD commit - id: head - run: echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT - - - name: Build changelog - id: changelog - uses: mikepenz/release-changelog-builder-action@v4 + - uses: nimblehq/github-actions-workflows/create_release_pr@0.1.10 with: - configuration: ".github/workflows/config/changelog-release.json" - # Listing PRs from the last tag to the HEAD commit - toTag: ${{ steps.head.outputs.sha }} - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Create the Release pull request - env: - GH_TOKEN: ${{ github.token }} - run: | - VERSION=${{ steps.version.outputs.templateScriptVersion }} - BASE_BRANCH=main - HEAD_BRANCH=release/$VERSION - - # Fetch milestone info - gh extension install valeriobelli/gh-milestone - MILESTONE=$VERSION - MILESTONE_URL=$(gh milestone list --query $MILESTONE --json url --jq ".[0].url") - - # Create the release branch - git checkout -b $HEAD_BRANCH - git push origin $HEAD_BRANCH - - # Create the pull request - gh pr create \ - --base $BASE_BRANCH \ - --head $HEAD_BRANCH \ - --assignee "bot-nimble" \ - --title "Release - $VERSION" \ - --label 'type : release' \ - --milestone $MILESTONE \ - --body "$MILESTONE_URL - - ${{ steps.changelog.outputs.changelog }}" \ + version: ${{ steps.version.outputs.templateScriptVersion }} + changelogConfiguration: ".github/workflows/config/changelog-release.json" + assignee: bot-nimble From 57b20c3434edc5e8a3a6c54cb459a7b8f044ff66 Mon Sep 17 00:00:00 2001 From: Luong Vo Date: Fri, 24 Nov 2023 11:51:02 +0700 Subject: [PATCH 3/4] [#525] Add create_release_pr workflow to .cicdtemplate folder for the new project --- .../workflows/config/changelog-release.json | 35 +++++++++++++++++++ .../.github/workflows/create_release_pr.yml | 25 +++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 .cicdtemplate/.github/workflows/config/changelog-release.json create mode 100644 .cicdtemplate/.github/workflows/create_release_pr.yml diff --git a/.cicdtemplate/.github/workflows/config/changelog-release.json b/.cicdtemplate/.github/workflows/config/changelog-release.json new file mode 100644 index 000000000..34c629417 --- /dev/null +++ b/.cicdtemplate/.github/workflows/config/changelog-release.json @@ -0,0 +1,35 @@ +{ + "categories": [ + { + "title": "## โœจ Features", + "labels": [ + "type : feature" + ], + "empty_content": "N/A" + }, + { + "title": "## ๐Ÿ› Bug fixes", + "labels": [ + "type : bug" + ], + "empty_content": "N/A" + }, + { + "title": "## ๐Ÿงน Chores", + "labels": [ + "type : chore" + ], + "empty_content": "N/A" + }, + { + "title": "## Others", + "exclude_labels": [ + "type : feature", + "type : bug", + "type : chore", + "type : release" + ] + } + ], + "max_pull_requests": 200 +} diff --git a/.cicdtemplate/.github/workflows/create_release_pr.yml b/.cicdtemplate/.github/workflows/create_release_pr.yml new file mode 100644 index 000000000..85c41038c --- /dev/null +++ b/.cicdtemplate/.github/workflows/create_release_pr.yml @@ -0,0 +1,25 @@ +name: Create the Release pull request + +on: + workflow_dispatch: + +jobs: + create_release_pr: + name: Create the Release pull request + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + - name: Checkout the latest code + uses: actions/checkout@v3 + + - name: Read the current version + id: version + run: echo "version=$(perl -nle 'print $1 if /ANDROID_VERSION_NAME = \"(.*)\"$/' buildSrc/src/main/java/Versions.kt)" >> $GITHUB_OUTPUT + + - uses: nimblehq/github-actions-workflows/create_release_pr@0.1.10 + with: + version: ${{ steps.version.outputs.version }} + changelogConfiguration: ".github/workflows/config/changelog-release.json" + assignee: bot-nimble From a8639abbb04d48b3bba059627f15d3598467a504 Mon Sep 17 00:00:00 2001 From: Luong Vo Date: Tue, 28 May 2024 00:39:09 +0700 Subject: [PATCH 4/4] [#525] Update to the latest action version --- ...elease_pr.yml => create_release_pull_request.yml} | 12 ++++++------ ...elease_pr.yml => create_release_pull_request.yml} | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) rename .cicdtemplate/.github/workflows/{create_release_pr.yml => create_release_pull_request.yml} (66%) rename .github/workflows/{create_release_pr.yml => create_release_pull_request.yml} (65%) diff --git a/.cicdtemplate/.github/workflows/create_release_pr.yml b/.cicdtemplate/.github/workflows/create_release_pull_request.yml similarity index 66% rename from .cicdtemplate/.github/workflows/create_release_pr.yml rename to .cicdtemplate/.github/workflows/create_release_pull_request.yml index 85c41038c..91ea40fa2 100644 --- a/.cicdtemplate/.github/workflows/create_release_pr.yml +++ b/.cicdtemplate/.github/workflows/create_release_pull_request.yml @@ -4,22 +4,22 @@ on: workflow_dispatch: jobs: - create_release_pr: + create_release_pull_request: name: Create the Release pull request runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - - name: Checkout the latest code - uses: actions/checkout@v3 + - name: Check out the latest code + uses: actions/checkout@v4 - name: Read the current version id: version run: echo "version=$(perl -nle 'print $1 if /ANDROID_VERSION_NAME = \"(.*)\"$/' buildSrc/src/main/java/Versions.kt)" >> $GITHUB_OUTPUT - - uses: nimblehq/github-actions-workflows/create_release_pr@0.1.10 + - uses: nimblehq/github-actions-workflows/create_release_pull_request@0.1.10 with: - version: ${{ steps.version.outputs.version }} - changelogConfiguration: ".github/workflows/config/changelog-release.json" + release_version: ${{ steps.version.outputs.version }} + changelog_configuration: ".github/workflows/config/changelog-release.json" assignee: bot-nimble diff --git a/.github/workflows/create_release_pr.yml b/.github/workflows/create_release_pull_request.yml similarity index 65% rename from .github/workflows/create_release_pr.yml rename to .github/workflows/create_release_pull_request.yml index cc1e4d0c9..3c3a31325 100644 --- a/.github/workflows/create_release_pr.yml +++ b/.github/workflows/create_release_pull_request.yml @@ -4,15 +4,15 @@ on: workflow_dispatch: jobs: - create_release_pr: + create_release_pull_request: name: Create the Release pull request runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - - name: Checkout the latest code - uses: actions/checkout@v3 + - name: Check out the latest code + uses: actions/checkout@v4 - name: Read the current version id: version @@ -21,8 +21,8 @@ jobs: path: "version.properties" properties: "templateScriptVersion" - - uses: nimblehq/github-actions-workflows/create_release_pr@0.1.10 + - uses: nimblehq/github-actions-workflows/create_release_pull_request@0.1.10 with: - version: ${{ steps.version.outputs.templateScriptVersion }} - changelogConfiguration: ".github/workflows/config/changelog-release.json" + release_version: ${{ steps.version.outputs.templateScriptVersion }} + changelog_configuration: ".github/workflows/config/changelog-release.json" assignee: bot-nimble