From ad55e269cfc1b5ebcf05f2a2a448c4fdf5a966a0 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Fri, 8 Nov 2024 00:49:52 -0700 Subject: [PATCH] feat(ci): Add release-please automation with VERSION (#7) * Add VERSION file that Zephyr will pick up * Add release-please automation --- Release-As: 0.1.0 --- .github/workflows/release-please.yml | 33 ++++++++++++++++++++++++++++ .pre-commit-config.yaml | 1 + .release-please-manifest.json | 8 +++++++ app/VERSION | 13 +++++++++++ 4 files changed, 55 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/.pre-commit-config.yaml b/.pre-commit-config.yaml index 352ad723277..c80afc767aa 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -16,6 +16,7 @@ repos: rev: v2.7.1 hooks: - id: prettier + exclude: "CHANGELOG\\.md$" # Workaround for https://github.com/pre-commit/mirrors-prettier/issues/29 additional_dependencies: - prettier@2.8.7 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