@@ -13,163 +13,163 @@ 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.12"
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- # cibuildwheel 3.0.0 dropped support for Python 3.7. We still want to
92- # support 3.7 for the time being.
93- run : pip install build cibuildwheel==2.23.3
94-
95- - name : Build Wheel
96- run : cibuildwheel --output-dir dist
97- env :
98- CIBW_BUILD : ${{ matrix.python }}*64
99- CIBW_TEST_EXTRAS : dev
100- # Added a sleep command afterwards to let all cleanup finish; sometimes
101- # cibuildwheel reports it cannot clean up the temp dir used for testing,
102- # and fails the build. Sleeping seems to give pytest enough time to
103- # fully clean up.
104- CIBW_TEST_COMMAND : pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} && sleep 2
105- # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows...
106- CIBW_TEST_COMMAND_WINDOWS : python -X faulthandler -m pytest -s {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }}
107- # Disable auditwheel as it isn't compatible with setuptools_dso approach
108- # https://github.com/mdavidsaver/setuptools_dso/issues/17
109- CIBW_REPAIR_WHEEL_COMMAND : " "
110- CIBW_MANYLINUX_X86_64_IMAGE : manylinux2014
111- CIBW_ENVIRONMENT_LINUX : SETUPTOOLS_DSO_PLAT_NAME=manylinux2014_x86_64
112- CIBW_SKIP : " *-musllinux*" # epicscorelibs doesn't build on musllinux platforms
113-
114- - name : Upload Wheel
115- uses : actions/upload-artifact@v4
116- with :
117- name : dist-${{ matrix.os }}-${{ matrix.python }}
118- path : dist/softioc*
119-
120- - name : Upload coverage to Codecov
121- uses : codecov/codecov-action@v4
122- with :
123- name : ${{ matrix.os }}/${{ matrix.python }}
124- directory : dist
125-
126- test-sdist :
127- needs : [sdist]
128- strategy :
129- fail-fast : false
130- matrix :
131- os : [ubuntu-latest, windows-latest, macos-13]
132- python : [cp37, cp38, cp39, cp310, cp311, cp312]
133-
134- runs-on : ${{ matrix.os }}
135-
136- steps :
137- - uses : actions/download-artifact@v4
138- with :
139- name : dist
140- path : dist
141-
142- - name : Install sdist in a venv and check cli works
143- run : pipx run --spec dist/*.tar.gz pythonSoftIOC --version
144- shell : bash
145-
146- release :
147- needs : [build, sdist]
148- runs-on : ubuntu-latest
149- # upload to PyPI and make a release on every tag
150- if : github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
151- steps :
152- - uses : actions/download-artifact@v4
153- with :
154- pattern : dist*
155- path : dist
156- merge-multiple : true
157-
158- - name : Github Release
159- # We pin to the SHA, not the tag, for security reasons.
160- # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
161- uses : softprops/action-gh-release@2d72d869af3bf23602f9593a1e3fd739b80ac1eb # v0.1.12
162- with :
163- files : dist/*
164- body : See [Changelog](CHANGELOG.rst) for more details
165- env :
166- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
167-
168- - name : Publish to PyPI
169- env :
170- TWINE_USERNAME : __token__
171- TWINE_PASSWORD : ${{ secrets.pypi_token }}
172- 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.12"
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+ # # cibuildwheel 3.0.0 dropped support for Python 3.7. We still want to
92+ # # support 3.7 for the time being.
93+ # run: pip install build cibuildwheel==2.23.3
94+
95+ # - name: Build Wheel
96+ # run: cibuildwheel --output-dir dist
97+ # env:
98+ # CIBW_BUILD: ${{ matrix.python }}*64
99+ # CIBW_TEST_EXTRAS: dev
100+ # # Added a sleep command afterwards to let all cleanup finish; sometimes
101+ # # cibuildwheel reports it cannot clean up the temp dir used for testing,
102+ # # and fails the build. Sleeping seems to give pytest enough time to
103+ # # fully clean up.
104+ # CIBW_TEST_COMMAND: pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} && sleep 2
105+ # # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows...
106+ # CIBW_TEST_COMMAND_WINDOWS: python -X faulthandler -m pytest -s {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }}
107+ # # Disable auditwheel as it isn't compatible with setuptools_dso approach
108+ # # https://github.com/mdavidsaver/setuptools_dso/issues/17
109+ # CIBW_REPAIR_WHEEL_COMMAND: ""
110+ # CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
111+ # CIBW_ENVIRONMENT_LINUX: SETUPTOOLS_DSO_PLAT_NAME=manylinux2014_x86_64
112+ # CIBW_SKIP: "*-musllinux*" # epicscorelibs doesn't build on musllinux platforms
113+
114+ # - name: Upload Wheel
115+ # uses: actions/upload-artifact@v4
116+ # with:
117+ # name: dist-${{ matrix.os }}-${{ matrix.python }}
118+ # path: dist/softioc*
119+
120+ # - name: Upload coverage to Codecov
121+ # uses: codecov/codecov-action@v4
122+ # with:
123+ # name: ${{ matrix.os }}/${{ matrix.python }}
124+ # directory: dist
125+
126+ # test-sdist:
127+ # needs: [sdist]
128+ # strategy:
129+ # fail-fast: false
130+ # matrix:
131+ # os: [ubuntu-latest, windows-latest, macos-13]
132+ # python: [cp37, cp38, cp39, cp310, cp311, cp312]
133+
134+ # runs-on: ${{ matrix.os }}
135+
136+ # steps:
137+ # - uses: actions/download-artifact@v4
138+ # with:
139+ # name: dist
140+ # path: dist
141+
142+ # - name: Install sdist in a venv and check cli works
143+ # run: pipx run --spec dist/*.tar.gz pythonSoftIOC --version
144+ # shell: bash
145+
146+ # release:
147+ # needs: [build, sdist]
148+ # runs-on: ubuntu-latest
149+ # # upload to PyPI and make a release on every tag
150+ # if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
151+ # steps:
152+ # - uses: actions/download-artifact@v4
153+ # with:
154+ # pattern: dist*
155+ # path: dist
156+ # merge-multiple: true
157+
158+ # - name: Github Release
159+ # # We pin to the SHA, not the tag, for security reasons.
160+ # # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions
161+ # uses: softprops/action-gh-release@2d72d869af3bf23602f9593a1e3fd739b80ac1eb # v0.1.12
162+ # with:
163+ # files: dist/*
164+ # body: See [Changelog](CHANGELOG.rst) for more details
165+ # env:
166+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
167+
168+ # - name: Publish to PyPI
169+ # env:
170+ # TWINE_USERNAME: __token__
171+ # TWINE_PASSWORD: ${{ secrets.pypi_token }}
172+ # run: pipx run twine upload dist/*
173173
174174 # Check that the master branches of various upstream dependencies are
175175 # still compatible when used together
@@ -191,7 +191,8 @@ jobs:
191191
192192 - name : Install master versions
193193 run : |
194- pip install git+https://github.com/epics-base/p4p.git git+https://github.com/epics-base/pvxs.git git+https://github.com/epics-base/epicscorelibs.git
194+ pip install git+https://github.com/epics-base/p4p.git git+https://github.com/epics-base/pvxs.git
195+ pip install git+https://github.com/epics-base/epicscorelibs.git@fix-compiler-detection
195196 pip install git+https://github.com/DiamondLightSource/aioca git+https://github.com/DiamondLightSource/cothread
196197 pip install -e .[dev]
197198 pip freeze
0 commit comments