@@ -13,160 +13,160 @@ on:
13
13
- cron : ' 0 8 * * MON'
14
14
15
15
jobs :
16
- lint :
17
- runs-on : " ubuntu-latest"
18
- steps :
19
- - name : Checkout Source
20
- uses : actions/checkout@v4
21
-
22
- - name : Install Python
23
- uses : actions/setup-python@v4
24
- with :
25
- python-version : " 3.7"
26
-
27
- - name : Install Python Dependencies
28
- run : pip install flake8
29
-
30
- - name : Lint
31
- run : flake8
32
-
33
- sdist :
34
- runs-on : " ubuntu-latest"
35
- steps :
36
- - name : Checkout Source
37
- uses : actions/checkout@v4
38
- with :
39
- # require history to get back to last tag for version number of branches
40
- fetch-depth : 0
41
- submodules : true
42
-
43
- - name : Build Sdist
44
- run : pipx run build --sdist .
45
-
46
- - name : Upload Sdist
47
- uses : actions/upload-artifact@v4
48
- with :
49
- name : dist
50
- path : dist/*
51
-
52
- build :
53
- strategy :
54
- fail-fast : false
55
- matrix :
56
- os : [ubuntu-latest, windows-latest, macos-13]
57
- python : [cp37, cp38, cp39, cp310, cp311, cp312]
58
-
59
-
60
- include :
61
- # Put coverage and results files in the project directory for mac
62
- - os : macos-13
63
- cov_file : " {project}/dist/coverage.xml"
64
- results_file : " {project}/dist/pytest-results.xml"
65
- # And for windows
66
- - os : windows-latest
67
- cov_file : " {project}/dist/coverage.xml"
68
- results_file : " {project}/dist/pytest-results.xml"
69
- # But put coverage and results files in the output dir mounted in docker for linux
70
- - os : ubuntu-latest
71
- cov_file : /output/coverage.xml
72
- results_file : /output/pytest-results.xml
73
-
74
- name : build/${{ matrix.os }}/${{ matrix.python }}
75
- runs-on : ${{ matrix.os }}
76
-
77
- steps :
78
- - name : Checkout Source
79
- uses : actions/checkout@v4
80
- with :
81
- # require history to get back to last tag for version number of branches
82
- fetch-depth : 0
83
- submodules : true
84
-
85
- - name : Install Python
86
- uses : actions/setup-python@v4
87
- with :
88
- python-version : " 3.12"
89
-
90
- - name : Install Python Dependencies
91
- run : pip install build cibuildwheel>=2.16.2
92
-
93
- - name : Build Wheel
94
- run : cibuildwheel --output-dir dist
95
- env :
96
- CIBW_BUILD : ${{ matrix.python }}*64
97
- CIBW_TEST_EXTRAS : dev
98
- # Added a sleep command afterwards to let all cleanup finish; sometimes
99
- # cibuildwheel reports it cannot clean up the temp dir used for testing,
100
- # and fails the build. Sleeping seems to give pytest enough time to
101
- # fully clean up.
102
- CIBW_TEST_COMMAND : pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} && sleep 2
103
- # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows...
104
- CIBW_TEST_COMMAND_WINDOWS : python -X faulthandler -m pytest -s {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }}
105
- # Disable auditwheel as it isn't compatible with setuptools_dso approach
106
- # https://github.com/mdavidsaver/setuptools_dso/issues/17
107
- CIBW_REPAIR_WHEEL_COMMAND : " "
108
- CIBW_MANYLINUX_X86_64_IMAGE : manylinux2014
109
- CIBW_ENVIRONMENT_LINUX : SETUPTOOLS_DSO_PLAT_NAME=manylinux2014_x86_64
110
- CIBW_SKIP : " *-musllinux*" # epicscorelibs doesn't build on musllinux platforms
111
-
112
- - name : Upload Wheel
113
- uses : actions/upload-artifact@v4
114
- with :
115
- name : dist-${{ matrix.os }}-${{ matrix.python }}
116
- path : dist/softioc*
117
-
118
- - name : Upload coverage to Codecov
119
- uses : codecov/codecov-action@v4
120
- with :
121
- name : ${{ matrix.os }}/${{ matrix.python }}
122
- directory : dist
123
-
124
- test-sdist :
125
- needs : [sdist]
126
- strategy :
127
- fail-fast : false
128
- matrix :
129
- os : [ubuntu-latest, windows-latest, macos-13]
130
- python : [cp37, cp38, cp39, cp310, cp311, cp312]
131
-
132
- runs-on : ${{ matrix.os }}
133
-
134
- steps :
135
- - uses : actions/download-artifact@v4
136
- with :
137
- name : dist
138
- path : dist
139
-
140
- - name : Install sdist in a venv and check cli works
141
- run : pipx run --spec dist/*.tar.gz pythonSoftIOC --version
142
- shell : bash
143
-
144
- release :
145
- needs : [build, sdist]
146
- runs-on : ubuntu-latest
147
- # upload to PyPI and make a release on every tag
148
- if : github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
149
- steps :
150
- - uses : actions/download-artifact@v4
151
- with :
152
- name : dist
153
- path : dist
154
-
155
- - name : Github Release
156
- # We pin to the SHA, not the tag, for security reasons.
157
- # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
158
- uses : softprops/action-gh-release@2d72d869af3bf23602f9593a1e3fd739b80ac1eb # v0.1.12
159
- with :
160
- files : dist/*
161
- body : See [Changelog](CHANGELOG.rst) for more details
162
- env :
163
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
164
-
165
- - name : Publish to PyPI
166
- env :
167
- TWINE_USERNAME : __token__
168
- TWINE_PASSWORD : ${{ secrets.pypi_token }}
169
- run : pipx run twine upload dist/*
16
+ # lint:
17
+ # runs-on: "ubuntu-latest"
18
+ # steps:
19
+ # - name: Checkout Source
20
+ # uses: actions/checkout@v4
21
+
22
+ # - name: Install Python
23
+ # uses: actions/setup-python@v4
24
+ # with:
25
+ # python-version: "3.7"
26
+
27
+ # - name: Install Python Dependencies
28
+ # run: pip install flake8
29
+
30
+ # - name: Lint
31
+ # run: flake8
32
+
33
+ # sdist:
34
+ # runs-on: "ubuntu-latest"
35
+ # steps:
36
+ # - name: Checkout Source
37
+ # uses: actions/checkout@v4
38
+ # with:
39
+ # # require history to get back to last tag for version number of branches
40
+ # fetch-depth: 0
41
+ # submodules: true
42
+
43
+ # - name: Build Sdist
44
+ # run: pipx run build --sdist .
45
+
46
+ # - name: Upload Sdist
47
+ # uses: actions/upload-artifact@v4
48
+ # with:
49
+ # name: dist
50
+ # path: dist/*
51
+
52
+ # build:
53
+ # strategy:
54
+ # fail-fast: false
55
+ # matrix:
56
+ # os: [ubuntu-latest, windows-latest, macos-13]
57
+ # python: [cp37, cp38, cp39, cp310, cp311, cp312]
58
+
59
+
60
+ # include:
61
+ # # Put coverage and results files in the project directory for mac
62
+ # - os: macos-13
63
+ # cov_file: "{project}/dist/coverage.xml"
64
+ # results_file: "{project}/dist/pytest-results.xml"
65
+ # # And for windows
66
+ # - os: windows-latest
67
+ # cov_file: "{project}/dist/coverage.xml"
68
+ # results_file: "{project}/dist/pytest-results.xml"
69
+ # # But put coverage and results files in the output dir mounted in docker for linux
70
+ # - os: ubuntu-latest
71
+ # cov_file: /output/coverage.xml
72
+ # results_file: /output/pytest-results.xml
73
+
74
+ # name: build/${{ matrix.os }}/${{ matrix.python }}
75
+ # runs-on: ${{ matrix.os }}
76
+
77
+ # steps:
78
+ # - name: Checkout Source
79
+ # uses: actions/checkout@v4
80
+ # with:
81
+ # # require history to get back to last tag for version number of branches
82
+ # fetch-depth: 0
83
+ # submodules: true
84
+
85
+ # - name: Install Python
86
+ # uses: actions/setup-python@v4
87
+ # with:
88
+ # python-version: "3.12"
89
+
90
+ # - name: Install Python Dependencies
91
+ # run: pip install build cibuildwheel>=2.16.2
92
+
93
+ # - name: Build Wheel
94
+ # run: cibuildwheel --output-dir dist
95
+ # env:
96
+ # CIBW_BUILD: ${{ matrix.python }}*64
97
+ # CIBW_TEST_EXTRAS: dev
98
+ # # Added a sleep command afterwards to let all cleanup finish; sometimes
99
+ # # cibuildwheel reports it cannot clean up the temp dir used for testing,
100
+ # # and fails the build. Sleeping seems to give pytest enough time to
101
+ # # fully clean up.
102
+ # CIBW_TEST_COMMAND: pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} && sleep 2
103
+ # # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows...
104
+ # CIBW_TEST_COMMAND_WINDOWS: python -X faulthandler -m pytest -s {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }}
105
+ # # Disable auditwheel as it isn't compatible with setuptools_dso approach
106
+ # # https://github.com/mdavidsaver/setuptools_dso/issues/17
107
+ # CIBW_REPAIR_WHEEL_COMMAND: ""
108
+ # CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
109
+ # CIBW_ENVIRONMENT_LINUX: SETUPTOOLS_DSO_PLAT_NAME=manylinux2014_x86_64
110
+ # CIBW_SKIP: "*-musllinux*" # epicscorelibs doesn't build on musllinux platforms
111
+
112
+ # - name: Upload Wheel
113
+ # uses: actions/upload-artifact@v4
114
+ # with:
115
+ # name: dist-${{ matrix.os }}-${{ matrix.python }}
116
+ # path: dist/softioc*
117
+
118
+ # - name: Upload coverage to Codecov
119
+ # uses: codecov/codecov-action@v4
120
+ # with:
121
+ # name: ${{ matrix.os }}/${{ matrix.python }}
122
+ # directory: dist
123
+
124
+ # test-sdist:
125
+ # needs: [sdist]
126
+ # strategy:
127
+ # fail-fast: false
128
+ # matrix:
129
+ # os: [ubuntu-latest, windows-latest, macos-13]
130
+ # python: [cp37, cp38, cp39, cp310, cp311, cp312]
131
+
132
+ # runs-on: ${{ matrix.os }}
133
+
134
+ # steps:
135
+ # - uses: actions/download-artifact@v4
136
+ # with:
137
+ # name: dist
138
+ # path: dist
139
+
140
+ # - name: Install sdist in a venv and check cli works
141
+ # run: pipx run --spec dist/*.tar.gz pythonSoftIOC --version
142
+ # shell: bash
143
+
144
+ # release:
145
+ # needs: [build, sdist]
146
+ # runs-on: ubuntu-latest
147
+ # # upload to PyPI and make a release on every tag
148
+ # if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
149
+ # steps:
150
+ # - uses: actions/download-artifact@v4
151
+ # with:
152
+ # name: dist
153
+ # path: dist
154
+
155
+ # - name: Github Release
156
+ # # We pin to the SHA, not the tag, for security reasons.
157
+ # # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
158
+ # uses: softprops/action-gh-release@2d72d869af3bf23602f9593a1e3fd739b80ac1eb # v0.1.12
159
+ # with:
160
+ # files: dist/*
161
+ # body: See [Changelog](CHANGELOG.rst) for more details
162
+ # env:
163
+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
164
+
165
+ # - name: Publish to PyPI
166
+ # env:
167
+ # TWINE_USERNAME: __token__
168
+ # TWINE_PASSWORD: ${{ secrets.pypi_token }}
169
+ # run: pipx run twine upload dist/*
170
170
171
171
# Check that the master branches of various upstream dependencies are
172
172
# still compatible when used together
0 commit comments