From 2e4e7e981f87eb4c12c90bddb447a034e43be14f Mon Sep 17 00:00:00 2001 From: Peter Johanson Date: Thu, 7 Nov 2024 12:56:57 -0700 Subject: [PATCH] feat(ci): Add release-please automation with VERSION * Add VERSION file that Zephyr will pick up * Add release-please automation --- .github/workflows/release-please.yml | 33 ++++++++++++++++++++++++++++ .release-please-manifest.json | 8 +++++++ app/VERSION | 13 +++++++++++ 3 files changed, 54 insertions(+) create mode 100644 .github/workflows/release-please.yml create mode 100644 .release-please-manifest.json create mode 100644 app/VERSION diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 00000000000..08c387012f9 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,33 @@ +on: + push: + branches: + - main + +permissions: + contents: write + pull-requests: write + +name: release-please + +jobs: + release-please: + runs-on: ubuntu-latest + steps: + - uses: googleapis/release-please-action@v4 + with: + token: ${{ secrets.ZMK_RELEASE_PLEASE_TOKEN }} + release-type: simple + - name: tag major, minor, and patch versions + if: ${{ steps.release.outputs.release_created }} + run: | + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + git remote add gh-token "https://x-access-token:${{ secrets.ZMK_RELEASE_PLEASE_TOKEN }}@github.com/${{ github.repository }}.git" + git tag -d v${{ steps.release.outputs.major }} || true + git tag -d 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 }}" + git tag -a v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}" + git tag -a v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }}" + git push --force gh-token v${{ steps.release.outputs.major }} + git push --force gh-token v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} + git push --force gh-token v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}.${{ steps.release.outputs.patch }} diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 00000000000..cc52db24ca6 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,8 @@ +{ + "extra-files": [ + { + "type": "generic", + "path": "app/VERSION" + } + ] +} diff --git a/app/VERSION b/app/VERSION new file mode 100644 index 00000000000..bce9f90bd5a --- /dev/null +++ b/app/VERSION @@ -0,0 +1,13 @@ +# x-release-please-start-major +VERSION_MAJOR = 0 +# x-release-please-end + +# x-release-please-start-minor +VERSION_MINOR = 0 +# x-release-please-end + +# x-release-please-start-patch +PATCHLEVEL = 1 +# x-release-please-end + +VERSION_TWEAK = 0 \ No newline at end of file