From cf6b0bd390174ee6d0d4d26bcf7961eea183bfa0 Mon Sep 17 00:00:00 2001 From: David Arnold Date: Sat, 16 Dec 2023 22:51:33 +0100 Subject: [PATCH 1/3] fix(build): avoid dynamic metadata --- pyproject.toml | 2 +- waba_integration/__init__.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index c1394d3..3e98000 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ authors = [ description = "Work with WhatsApp Business Cloud API from your Frappe site" requires-python = ">=3.10" readme = "README.md" -dynamic = ["version"] +version = "0.0.1" dependencies = [] [build-system] diff --git a/waba_integration/__init__.py b/waba_integration/__init__.py index 7a0660b..63dfcac 100644 --- a/waba_integration/__init__.py +++ b/waba_integration/__init__.py @@ -1,3 +1,3 @@ +import importlib.metadata -__version__ = '0.0.1' - +__version__ = importlib.metadata.version(__name__) From 11258b72ddea806e453f4cd1213ecc7921b4c731 Mon Sep 17 00:00:00 2001 From: David Arnold Date: Tue, 19 Dec 2023 12:39:19 +0100 Subject: [PATCH 2/3] fix: add bench backwards compat --- setup.cfg | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 setup.cfg diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..e8ec689 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,3 @@ +[metadata] +# compatibility until https://github.com/frappe/bench/pull/1502 is more adopted +version = 0.0.1 From 2140f558e3d1f9f9126e778e1c6ac8aa506dc718 Mon Sep 17 00:00:00 2001 From: David Arnold Date: Tue, 19 Dec 2023 13:29:00 +0100 Subject: [PATCH 3/3] fix: add release automation --- .github/workflows/make-release-pr.yml | 29 +++++++++++++++++++++++++ .github/workflows/release.yml | 28 ++++++++++++++++++++++++ .releaserc | 31 +++++++++++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 .github/workflows/make-release-pr.yml create mode 100644 .github/workflows/release.yml create mode 100644 .releaserc diff --git a/.github/workflows/make-release-pr.yml b/.github/workflows/make-release-pr.yml new file mode 100644 index 0000000..7a961f6 --- /dev/null +++ b/.github/workflows/make-release-pr.yml @@ -0,0 +1,29 @@ +# forked (:p) from frappe/frappe + +name: Create fortnightly release +on: + schedule: + # 13:00 UTC -> 7pm IST on every alternate Tuesday + - cron: '0 13 * * 2/2' + workflow_dispatch: + +jobs: + release: + name: Release + runs-on: ubuntu-latest + strategy: + fail-fast: false + + steps: + - uses: octokit/request-action@v2.x + with: + route: POST /repos/{owner}/{repo}/pulls + owner: frappe + repo: waba_integration + title: |- + "chore: merge 'develop' into 'main'" + body: "Automated fortnightly release" + base: main + head: develop + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..de7fcde --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,28 @@ +name: Generate Semantic Release +on: + push: + branches: + - main + +jobs: + release: + name: Release + runs-on: ubuntu-latest + steps: + - name: Checkout Entire Repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 + persist-credentials: false + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + - name: Setup dependencies + run: | + npm install @semantic-release/git @semantic-release/exec --no-save + pip install toml-cli + - name: Create Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npx semantic-release diff --git a/.releaserc b/.releaserc new file mode 100644 index 0000000..c0da374 --- /dev/null +++ b/.releaserc @@ -0,0 +1,31 @@ +{ + "branches": [ + "main" + ], + "plugins": [ + "@semantic-release/commit-analyzer", + { + "preset": "angular", + "releaseRules": [ + { + "breaking": true, + "release": false + } + ] + }, + [ + "@semantic-release/exec", + { + "prepareCmd": 'toml set --toml-path pyproject.toml project.version ${nextRelease.version}' + } + ], + [ + "@semantic-release/git", + { + "assets": ["pyproject.toml"], + "message": "chore(release): bumped to v${nextRelease.version}" + } + ], + "@semantic-release/github" + ] +}