From 58d86ec185a999191c29b61d9c9e65f4ab51d279 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Wed, 9 Apr 2025 08:40:29 -0500 Subject: [PATCH] Add a reusable workflow to prepare release branches --- .github/workflows/prep-release.yaml | 31 +++++++++++++++++++ ...39_kurtmckee_add_prep_release_workflow.rst | 4 +++ tox.ini | 13 ++++++++ 3 files changed, 48 insertions(+) create mode 100644 .github/workflows/prep-release.yaml create mode 100644 changelog.d/20250409_083939_kurtmckee_add_prep_release_workflow.rst diff --git a/.github/workflows/prep-release.yaml b/.github/workflows/prep-release.yaml new file mode 100644 index 0000000..6f0c003 --- /dev/null +++ b/.github/workflows/prep-release.yaml @@ -0,0 +1,31 @@ +name: "✨ Prep release" + +on: + workflow_dispatch: + inputs: + version: + description: "The new version" + type: "string" + required: true + +jobs: + prep-release: + name: "Prep release v${{ inputs.version }}" + + permissions: + contents: "write" + pull-requests: "write" + + strategy: + matrix: + include: + - tox-label-create-changes: "prep-release" + branch-name: "release/$VERSION" + commit-title: "Update project metadata" + pr-base: "releases" + pr-title: "Release v$VERSION" + + uses: "kurtmckee/github-workflows/.github/workflows/create-pr.yaml@ca26472ada33aa277527450aa46436f530e3d2c1" # v1.4 + with: + config: "${{ toJSON(matrix) }}" + version: "${{ inputs.version }}" diff --git a/changelog.d/20250409_083939_kurtmckee_add_prep_release_workflow.rst b/changelog.d/20250409_083939_kurtmckee_add_prep_release_workflow.rst new file mode 100644 index 0000000..8704cc4 --- /dev/null +++ b/changelog.d/20250409_083939_kurtmckee_add_prep_release_workflow.rst @@ -0,0 +1,4 @@ +Development +----------- + +* Add a reusable workflow to prepare release branches. diff --git a/tox.ini b/tox.ini index 63a0e54..800348c 100644 --- a/tox.ini +++ b/tox.ini @@ -6,6 +6,7 @@ envlist = pypy{3.11, 3.10}{-http,} py3.9-minimum_dependencies coverage_report + build mypy docs labels = @@ -44,6 +45,18 @@ deps = -rrequirements/docs/requirements.txt commands = sphinx-build -aWEnqb html docs/ build/docs +[testenv:build] +base_python = py3.13 +skip_install = true +deps = + build + twine + uv +commands = + python -m build --installer uv --outdir dist/ + twine check --strict dist/* + + [testenv:coverage_erase] skipsdist = true skip_install = true