-
Notifications
You must be signed in to change notification settings - Fork 9
129 lines (105 loc) · 2.92 KB
/
main.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
name: bob-the-builder
# only run on pushes to main or pull requests
on:
push:
# push to any branch *
branches: '*'
pull_request:
branches: [ main ]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: chartboost/ruff-action@v1
tests:
runs-on: ${{ matrix.os }}
timeout-minutes: 15 # Consider increasing timeout
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
python-version:
- '3.10'
- '3.11'
- '3.12'
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Pip install
run: pip install .
- name: Run tests
run: pip install pytest && pytest tests -v
cd:
permissions:
contents: write
packages: write
issues: write
pull-requests: write
needs: [tests]
# if pulling to main, deploy to PyPI
if: github.ref == 'refs/heads/main'
# Set up operating system
runs-on: ubuntu-latest
outputs:
released: ${{ steps.release.outputs.released }}
version: ${{ steps.release.outputs.version }}
tag: ${{ steps.release.outputs.tag }}
# Define job steps
steps:
- name: Set up Python 3.12
uses: actions/setup-python@v2
with:
python-version: 3.12
- name: Check-out repository
uses: actions/checkout@v2
with:
fetch-depth: 0
pip-squeak:
needs: cd
if: needs.cd.outputs.released == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout the code with tag ${{ needs.cd.outputs.tag }}
uses: actions/checkout@v3
with:
ref: ${{ needs.cd.outputs.tag }}
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: 3.12
- name: Install Package Builder
run:
python3 -m pip install build
- name: Build package
run:
python3 -m build --sdist --wheel --outdir dist/
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
verbose: true
user: ${{ secrets.pypi_token }}
password: ${{ secrets.pypi_api }}
does-the-pip-squeak:
needs: pip-squeak
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.12", "3.11", "3.10"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install using PyPi
run: |
pip install med-imagetools==${{ needs.cd.outputs.version }}
autopipeline