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