-
Notifications
You must be signed in to change notification settings - Fork 12
128 lines (103 loc) · 3.33 KB
/
Copy pathcode.yml
File metadata and controls
128 lines (103 loc) · 3.33 KB
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
name: Code CI
on:
push:
pull_request:
jobs:
lint:
runs-on: "ubuntu-latest"
steps:
- name: Checkout Source
uses: actions/checkout@v2
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: '3.7'
- name: Install Python Dependencies
run: pip install flake8
- name: Lint
run: flake8
build:
name: ${{ matrix.os }}/${{ matrix.python }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python: [cp27, cp37, cp38, cp39]
exclude:
- os: windows-latest
# No cothread or asyncio so doesn't work
python: cp27
include:
- os: ubuntu-latest
# Put coverage in the output dir mounted in docker
cov_file: /output/coverage.xml
test_requires: cothread pytest-asyncio aioca
# Build an sdist here so it has the right line endings
sdist: true
- os: windows-latest
cov_file: '{project}/dist/coverage.xml'
# cothread doesn't work on windows
test_requires: pytest-asyncio aioca
- os: macos-latest
cov_file: '{project}/dist/coverage.xml'
test_requires: cothread pytest-asyncio aioca
- os: ubuntu-latest
python: cp27
# asyncio doesn't work on Python2.7
test_requires: cothread
- os: macos-latest
python: cp27
# asyncio doesn't work on Python2.7
test_requires: cothread
steps:
- name: Checkout Source
uses: actions/checkout@v2
with:
submodules: true
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: '3.7'
- name: Install Python Dependencies
run: pip install build cibuildwheel
- name: Build Sdist
if: matrix.sdist
run: python -m build --sdist .
- name: Build Wheel
run: cibuildwheel --output-dir dist
env:
CIBW_BUILD: ${{ matrix.python }}*64
CIBW_TEST_REQUIRES: pytest-cov p4p ${{ matrix.test_requires }}
CIBW_TEST_COMMAND: pytest --cov=softioc {project}/tests --cov-report xml:${{ matrix.cov_file }}
# Disable auditwheel as it isn't compatible with setuptools_dso approach
# https://github.com/mdavidsaver/setuptools_dso/issues/17
CIBW_REPAIR_WHEEL_COMMAND: ''
CIBW_MANYLINUX_X86_64_IMAGE: manylinux1
- name: Upload Wheel and Sdist
uses: actions/upload-artifact@v2
with:
name: dist
path: dist/softioc*
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
name: ${{ matrix.os }}/${{ matrix.python }}
directory: dist
upload_pypi:
needs: [build]
runs-on: ubuntu-latest
# upload to PyPI on every tag
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
steps:
- uses: actions/download-artifact@v2
with:
name: dist
path: dist
- name: Install Python Dependencies
run: pip install twine
- name: Publish to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.pypi_token }}
run: twine upload dist/*