From 2321babbfcb8a78caf83228434e22966a8a7cdf4 Mon Sep 17 00:00:00 2001 From: EiffelFly <57251712+EiffelFly@users.noreply.github.com> Date: Mon, 20 Jun 2022 20:22:59 +0800 Subject: [PATCH] feat: add release please action (#21) Because - We need official release tag for versioning This commit - Implement release-please action --- .github/workflows/release.yml | 46 ++++++++++++++++++++++++++++++++++- release-please/config.json | 11 +++++++++ release-please/manifest.json | 3 +++ 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 release-please/config.json create mode 100644 release-please/manifest.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b2e279e8f..a283e71e1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1 +1,45 @@ -name: Release Please \ No newline at end of file +name: Release Please + +on: + push: + branches: + - main + +jobs: + release-please: + runs-on: ubuntu-latest + outputs: + RELEASE_CREATED: ${{ steps.release.outputs.release_created }} + TAG_NAME: ${{ steps.release.outputs.tag_name }} + SHA: ${{ steps.release.outputs.sha }} + steps: + - uses: google-github-actions/release-please-action@v3 + id: release + with: + token: ${{ secrets.botGitHubToken }} + release-type: node + command: manifest + config-file: release-please/config.json + manifest-file: release-please/manifest.json + - uses: actions/checkout@v2 + with: + token: ${{ secrets.botGitHubToken }} + - name: Import GPG Key + uses: crazy-max/ghaction-import-gpg@v4 + with: + gpg_private_key: ${{ secrets.botGPGPrivateKey }} + passphrase: ${{ secrets.botGPGPassphrase }} + git_user_signingkey: true + git_commit_gpgsign: true + git_tag_gpgsign: true + - name: Tag major and minor versions + if: ${{ steps.release.outputs.release_created }} + run: | + git tag -d v${{ steps.release.outputs.major }} || true + git tag -d v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true + git push origin :v${{ steps.release.outputs.major }} || true + git push origin :v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true + git tag -a v${{ steps.release.outputs.major }} -m "Release v${{ steps.release.outputs.major }} pointing to tag ${{ steps.release.outputs.tag_name }}" + git tag -a v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} pointing to tag ${{ steps.release.outputs.tag_name }}" + git push origin v${{ steps.release.outputs.major }} + git push origin v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} \ No newline at end of file diff --git a/release-please/config.json b/release-please/config.json new file mode 100644 index 000000000..98815cbbf --- /dev/null +++ b/release-please/config.json @@ -0,0 +1,11 @@ +{ + "packages": { + ".": { + "release-type": "node", + "draft": false, + "prerelease": true, + "bump-minor-pre-major": true, + "bump-patch-for-minor-pre-major": false + } + } +} \ No newline at end of file diff --git a/release-please/manifest.json b/release-please/manifest.json new file mode 100644 index 000000000..aaa68790d --- /dev/null +++ b/release-please/manifest.json @@ -0,0 +1,3 @@ +{ + ".": "0.0.1-alpha" +} \ No newline at end of file