-
Notifications
You must be signed in to change notification settings - Fork 0
157 lines (126 loc) · 3.61 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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
---
name: Publish to PyPI
on:
release:
types:
- published
push:
tags:
- v*
workflow_dispatch:
jobs:
build-distributions:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v4
name: Install Python
with:
python-version: '3.11'
- name: generate env
run: |
pip install build tomli twine wheel
- name: Build artifacts
run: |
python -m build --sdist
python -m build --wheel
python -m twine check dist/*
- uses: actions/upload-artifact@v3
with:
name: releases
path: dist
test-built-dist:
needs: build-distributions
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest"] #, "macos-latest", "windows-latest"]
python-version: ["3.11"] # fix tests to support older versions
include:
- os: ubuntu-latest
label: linux-64
prefix: /home/runner/miniconda3/envs/fiat_min
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- uses: actions/download-artifact@v3
with:
name: releases
path: dist
- name: List contents of built dist
run: |
ls -ltrh
ls -ltrh dist
- name: Generate env yaml
run: pip install tomli && python make_env.py min -p ${{ matrix.python-version }}.*
- name: load from cache
id: cache
uses: actions/cache/restore@v4
with:
path: |
/home/runner/miniconda3
~/pycache
# the below two settings mean we'll alway srestore the cache
# but the cache hit output can tell us if we have to update afterwards
key: min-${{ hashFiles('environment.yml') }}
restore-keys: |
min
- name: Fail on no cache restore
if: steps.cache.outputs.cache-matched-key == ''
run: |
echo "Failed to restore any cache. exiting..."
exit 1
- name: Conda info
run: |
export PATH=/home/runner/miniconda3/bin:$PATH
conda info
conda list -n fiat_min
- name: Verify the built dist/wheel is valid
run: |
export PATH=/home/runner/miniconda3/bin:$PATH
source /home/runner/miniconda3/etc/profile.d/conda.sh
conda activate fiat_min
python -m pip install dist/delft_fiat*.whl
fiat --help
upload-to-test-pypi:
needs: test-built-dist
if: github.event_name == 'push'
runs-on: ubuntu-latest
environment:
name: testpypi
url: https://test.pypi.org/p/Delft-FIAT
permissions:
id-token: write
steps:
- name: Download the sdist and wheel
uses: actions/download-artifact@v3
with:
name: releases
path: dist/
- name: Publish package to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
upload-to-pypi:
needs: test-built-dist
if: ${{ github.event_name == 'release' && !github.event.act }}
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/Delft-FIAT
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v3
with:
name: releases
path: dist
- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1