@@ -13,165 +13,164 @@ on:
1313 - cron : ' 0 8 * * MON'
1414
1515jobs :
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/*
170170
171171 # Check that the master branches of various upstream dependencies are
172172 # still compatible when used together
173173 master_branch_test :
174- if : ${{ github.event_name == 'schedule' }}
175174 runs-on : " ubuntu-latest"
176175 steps :
177176 - name : Checkout Source
0 commit comments