-
Notifications
You must be signed in to change notification settings - Fork 0
149 lines (124 loc) · 3.62 KB
/
deploy.yaml
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# On PR or push to package-* branch, build wheels and src dists
# On tag with version number, build wheels and src dists and upload to testpypi
# On release, build wheels and src dists and upload to pypi
name: Build and upload to PyPI
on:
pull_request:
branches:
- "main"
push:
tags:
- "v*"
release:
types:
- published
concurrency:
group: "${{ github.ref }}-${{ github.head_ref }}-${{ github.workflow }}"
cancel-in-progress: true
defaults:
run:
shell: bash -l {0}
jobs:
build_wheels:
name: Build wheels
if: github.repository == 'Becksteinlab/imdclient'
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install wheel
- name: Build wheel
run: |
pip wheel --no-deps . -w wheelhouse/
- name: Print directory contents
run: |
echo "Contents of the wheelhouse directory:"
ls -l wheelhouse
- name: upload artifacts
uses: actions/upload-artifact@v4
with:
name: artifact-whl
path: ./wheelhouse/*.whl
build_sdist:
name: build package source distribution
if: github.repository == 'Becksteinlab/imdclient'
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- name: Build sdist
run: pipx run build --sdist
- name: Print directory contents
run: |
echo "Contents of the dist directory:"
ls -l dist
- name: upload artifacts
uses: actions/upload-artifact@v4
with:
name: artifact-sdist
path: ./dist/*.tar.gz
upload_testpypi_imdclient:
name: testpypi_upload_imdclient
if: |
github.repository == 'Becksteinlab/imdclient' &&
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v'))
environment:
name: publisher
url: https://test.pypi.org/p/imdclient
permissions:
id-token: write
runs-on: ubuntu-latest
needs: [build_wheels, build_sdist]
steps:
- uses: actions/download-artifact@v4
with:
name: artifact-whl
path: dist
- uses: actions/download-artifact@v4
with:
name: artifact-sdist
path: dist
- name: Print directory contents
run: |
echo "Contents of the dist directory:"
ls -l dist
- name: upload_source_and_wheels
uses: pypa/[email protected]
with:
skip-existing: true
repository-url: https://test.pypi.org/legacy/
verbose: true
upload_pypi_imdclient:
name: pypi_upload_imdclient
if: |
github.repository == 'Becksteinlab/imdclient' &&
github.event_name == 'release' && github.event.action == 'published'
environment:
name: publisher
url: https://pypi.org/p/imdclient
permissions:
id-token: write
runs-on: ubuntu-latest
needs: [build_wheels, build_sdist]
steps:
- uses: actions/download-artifact@v4
with:
name: artifact-whl
path: dist
- uses: actions/download-artifact@v4
with:
name: artifact-sdist
path: dist
- name: Print directory contents
run: |
echo "Contents of the dist directory:"
ls -l dist
- name: upload_source_and_wheels
uses: pypa/[email protected]