-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (111 loc) · 3.07 KB
/
publish.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: publish
on:
push:
tags: '\d+.\d+.\d+'
env:
POETRY_VERSION: 1.8.2
jobs:
on-main-branch-check:
runs-on: ubuntu-latest
outputs:
on_main: ${{ steps.contains_tag.outputs.retval }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: rickstaa/action-contains-tag@v1
id: contains_tag
with:
reference: "main"
tag: "${{ github.ref_name }}"
tests:
name: tests
needs: on-main-branch-check
if: ${{ needs.on-main-branch-check.outputs.on_main == 'true' }}
uses: "./.github/workflows/tests.yml"
build-wheels:
name: build wheels
needs: tests
uses: "./.github/workflows/wheels.yml"
build-sdist:
name: build source distribution
needs: tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Install poetry
run: |
python -m pip install --upgrade pip
python -m pip install poetry==${{env.POETRY_VERSION}}
- name: Configure poetry
shell: bash
run: poetry config virtualenvs.in-project true
- name: Install dependencies
run: poetry install --no-interaction --no-root --without=dev
- name: Install project
run: poetry install --no-interaction --without=dev
- name: Build package
run: poetry build --format=sdist
- uses: actions/upload-artifact@v4
with:
name: prymer-sdist
path: dist/*.tar.gz
publish-to-pypi:
runs-on: ubuntu-latest
needs: [build-wheels, build-sdist]
environment: pypi
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v4
with:
path: packages
pattern: 'prymer-*'
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: packages/
skip-existing: true
verbose: true
make-changelog:
runs-on: ubuntu-latest
needs: publish-to-pypi
outputs:
release_body: ${{ steps.git-cliff.outputs.content }}
steps:
- name: Checkout the Repository at the Tagged Commit
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.ref_name }}
- name: Generate a Changelog
uses: orhun/git-cliff-action@v3
id: git-cliff
with:
config: pyproject.toml
args: --latest --verbose
env:
GITHUB_REPO: ${{ github.repository }}
make-github-release:
runs-on: ubuntu-latest
environment: github
permissions:
contents: write
pull-requests: read
needs: make-changelog
steps:
- name: Create Draft Release
id: create_release
uses: softprops/action-gh-release@v2
with:
name: ${{ github.ref_name }}
body: |
${{ needs.draft-changelog.outputs.release_body }}
draft: false
prerelease: false