From bf115674eabf6fa9b56fd9b61b5565c1d3c80cb9 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 --- Release-As: 0.1.0 --- .github/workflows/release-please.yml | 33 ++++++++++++++++++++++++++++ .pre-commit-config.yaml | 1 + .release-please-manifest.json | 1 + app/VERSION | 13 +++++++++++ release-please-config.json | 4 ++++ 5 files changed, 52 insertions(+) create mode 100644 .github/workflows/release-please.yml create mode 100644 .release-please-manifest.json create mode 100644 app/VERSION create mode 100644 release-please-config.json diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 00000000000..9f442030ae8 --- /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 + id: release + with: + token: ${{ secrets.ZMK_RELEASE_PLEASE_TOKEN }} + - uses: actions/checkout@v4 + if: ${{ steps.release.outputs.release_created }} + - 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 push --force gh-token v${{ steps.release.outputs.major }} + git push --force gh-token v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} 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..0967ef424bc --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1 @@ +{} 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 diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 00000000000..0ee0020b900 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "extra-files": ["app/VERSION"] +}