-
Notifications
You must be signed in to change notification settings - Fork 0
61 lines (53 loc) · 1.66 KB
/
release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
name: Release and publish to PyPI
on:
workflow_dispatch:
inputs:
version_number:
type: string
required: true
description: >-
New version number to publish (do not prefix with "v")
jobs:
build-release:
name: Build and release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install build dependencies
run: |
pip install build toml tox
- name: Update version in pyproject.toml
shell: python
run: |
import toml
with open("pyproject.toml", "r") as f:
pyproject = toml.load(f)
version_number = "${{ inputs.version_number }}"
assert len(version_number.split(".")) == 3
assert not version_number.startswith("v")
pyproject["project"]["version"] = version_number
with open("pyproject.toml", "w") as f:
toml.dump(pyproject, f)
- name: Run tests
run: tox
- name: Push tagged version
run: |
git config user.name github-actions
git config user.email [email protected]
git add pyproject.toml
git commit -m "Update version for v${{ inputs.version_number }} release"
git tag v${{ inputs.version_number }}
git push origin main --tags
- name: Build
run: |
python -m build
- name: Release
run: >
gh release create "v${{ inputs.version_number }}"
--generate-notes
--verify-tag