From 858dbc9d842dad653ba78a48bc1878d8e0b18d63 Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Fri, 8 Nov 2024 04:21:30 -0700 Subject: [PATCH] feat(ci): Add release-please automation with VERSION (#40) * Add VERSION file that Zephyr will pick up * Add release-please automation --- Release-As: 0.1.0 --- .github/workflows/release-please.yml | 41 ++++++++++++++++++++++++++++ .pre-commit-config.yaml | 5 ++++ .release-please-manifest.json | 1 + app/VERSION | 13 +++++++++ release-please-config.json | 9 ++++++ 5 files changed, 69 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..0edf1cd38a7 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,41 @@ +on: + push: + branches: + - main + - "v*.*-branch" + +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 }} + target-branch: ${{ github.ref_name }} + - uses: actions/checkout@v4 + if: ${{ steps.release.outputs.release_created }} + - name: create major, minor branch + if: ${{ steps.release.outputs.release_created && steps.release.outputs.patch == '0' }} + run: | + git remote add gh-token-branch "https://x-access-token:${{ secrets.ZMK_RELEASE_PLEASE_TOKEN }}@github.com/${{ github.repository }}.git" + git checkout -b v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}-branch + git push gh-token-branch v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}-branch + - name: tag major and minor 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..5efe9a79219 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -16,6 +16,11 @@ repos: rev: v2.7.1 hooks: - id: prettier + exclude: | + (?x)^( + CHANGELOG.md| + .release-please-manifest.json + )$ # 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..d09fb98616d --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "bootstrap-sha": "2ded7919ebd63e0174bf5a412f6f01d6af0061c6", + "release-type": "simple", + "extra-files": ["app/VERSION"], + "packages": { + ".": {} + } +}