From 0e40396008c1425a8636bd5a6e847ace9e7b12cd Mon Sep 17 00:00:00 2001 From: AlexWells Date: Thu, 9 Mar 2023 09:55:51 +0000 Subject: [PATCH 1/9] Add aarch64 build --- .github/workflows/code.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index 7f693a9c..dd317614 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -93,7 +93,7 @@ jobs: - name: Build Wheel run: cibuildwheel --output-dir dist env: - CIBW_BUILD: ${{ matrix.python }}*64 + CIBW_BUILD: ${{ matrix.python }}*64 ${{ matrix.python }}-manylinux_aarch64 CIBW_TEST_EXTRAS: dev CIBW_TEST_COMMAND: pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows... From d7262fdbe771085643dbb5d80410bf05f595046c Mon Sep 17 00:00:00 2001 From: AlexWells Date: Thu, 9 Mar 2023 10:04:07 +0000 Subject: [PATCH 2/9] Continue CI testing --- .github/workflows/code.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index dd317614..de7f0b22 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -93,7 +93,7 @@ jobs: - name: Build Wheel run: cibuildwheel --output-dir dist env: - CIBW_BUILD: ${{ matrix.python }}*64 ${{ matrix.python }}-manylinux_aarch64 + CIBW_BUILD: ${{ matrix.python }}-manylinux_aarch64 CIBW_TEST_EXTRAS: dev CIBW_TEST_COMMAND: pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows... From b165b616556ca30e799c94234060bdcd2c00daa0 Mon Sep 17 00:00:00 2001 From: AlexWells Date: Thu, 9 Mar 2023 10:09:07 +0000 Subject: [PATCH 3/9] Continue CI testing --- .github/workflows/code.yml | 76 +++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index de7f0b22..6be1f6f1 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -13,48 +13,48 @@ on: - cron: '0 8 * * MON' 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 - - sdist: - runs-on: "ubuntu-latest" - steps: - - name: Checkout Source - uses: actions/checkout@v2 - with: - # require history to get back to last tag for version number of branches - fetch-depth: 0 - submodules: true - - - name: Build Sdist - run: pipx run build --sdist . - - - name: Upload Sdist - uses: actions/upload-artifact@v2 - with: - name: dist - path: dist/* + # 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 + + # sdist: + # runs-on: "ubuntu-latest" + # steps: + # - name: Checkout Source + # uses: actions/checkout@v2 + # with: + # # require history to get back to last tag for version number of branches + # fetch-depth: 0 + # submodules: true + + # - name: Build Sdist + # run: pipx run build --sdist . + + # - name: Upload Sdist + # uses: actions/upload-artifact@v2 + # with: + # name: dist + # path: dist/* build: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - python: [cp36, cp37, cp38, cp39, cp310] + os: [ubuntu-latest] + python: [cp39] include: # Put coverage and results files in the project directory for mac @@ -93,7 +93,7 @@ jobs: - name: Build Wheel run: cibuildwheel --output-dir dist env: - CIBW_BUILD: ${{ matrix.python }}-manylinux_aarch64 + CIBW_BUILD: cp39-manylinux_aarch64 CIBW_TEST_EXTRAS: dev CIBW_TEST_COMMAND: pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows... From 4ef978f36922c3515203c99d1e43d78e083e0922 Mon Sep 17 00:00:00 2001 From: AlexWells Date: Thu, 9 Mar 2023 10:12:14 +0000 Subject: [PATCH 4/9] Continue CI testing --- .github/workflows/code.yml | 120 ++++++++++++++++++------------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index 6be1f6f1..2bf11f86 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -111,11 +111,11 @@ jobs: name: dist path: dist/softioc* - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v2 - with: - name: ${{ matrix.os }}/${{ matrix.python }} - directory: dist + # - name: Upload coverage to Codecov + # uses: codecov/codecov-action@v2 + # with: + # name: ${{ matrix.os }}/${{ matrix.python }} + # directory: dist - name: Upload Unit Test Results if: always() @@ -124,66 +124,66 @@ jobs: name: Unit Test Results (${{ matrix.os }}-${{ matrix.python }}) path: dist/pytest-results.xml - publish-test-results: - name: Publish Unit Tests Results - needs: build - runs-on: ubuntu-latest - if: always() - - steps: - - name: Download Artifacts - uses: actions/download-artifact@v2 - with: - path: artifacts + # publish-test-results: + # name: Publish Unit Tests Results + # needs: build + # runs-on: ubuntu-latest + # if: always() - - name: Publish Unit Test Results - uses: EnricoMi/publish-unit-test-result-action@v1 - with: - files: artifacts/**/*.xml + # steps: + # - name: Download Artifacts + # uses: actions/download-artifact@v2 + # with: + # path: artifacts - test-sdist: - needs: [sdist] - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - python: [cp36, cp37, cp38, cp39, cp310] + # - name: Publish Unit Test Results + # uses: EnricoMi/publish-unit-test-result-action@v1 + # with: + # files: artifacts/**/*.xml - runs-on: ${{ matrix.os }} + # test-sdist: + # needs: [sdist] + # strategy: + # fail-fast: false + # matrix: + # os: [ubuntu-latest, windows-latest, macos-latest] + # python: [cp36, cp37, cp38, cp39, cp310] - steps: - - uses: actions/download-artifact@v2 - with: - name: dist - path: dist + # runs-on: ${{ matrix.os }} - - name: Install sdist in a venv and check cli works - run: pipx run --spec dist/*.tar.gz pythonSoftIOC --version - shell: bash + # steps: + # - uses: actions/download-artifact@v2 + # with: + # name: dist + # path: dist - release: - needs: [build, sdist] - runs-on: ubuntu-latest - # upload to PyPI and make a release 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 sdist in a venv and check cli works + # run: pipx run --spec dist/*.tar.gz pythonSoftIOC --version + # shell: bash - - name: Github Release - # We pin to the SHA, not the tag, for security reasons. - # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions - uses: softprops/action-gh-release@2d72d869af3bf23602f9593a1e3fd739b80ac1eb # v0.1.12 - with: - files: dist/* - body: See [Changelog](CHANGELOG.rst) for more details - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # release: + # needs: [build, sdist] + # runs-on: ubuntu-latest + # # upload to PyPI and make a release 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: Publish to PyPI - env: - TWINE_USERNAME: __token__ - TWINE_PASSWORD: ${{ secrets.pypi_token }} - run: pipx run twine upload dist/* + # - name: Github Release + # # We pin to the SHA, not the tag, for security reasons. + # # https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions + # uses: softprops/action-gh-release@2d72d869af3bf23602f9593a1e3fd739b80ac1eb # v0.1.12 + # with: + # files: dist/* + # body: See [Changelog](CHANGELOG.rst) for more details + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # - name: Publish to PyPI + # env: + # TWINE_USERNAME: __token__ + # TWINE_PASSWORD: ${{ secrets.pypi_token }} + # run: pipx run twine upload dist/* From c97d3dd1c54308dee4af9b724d06a6edf7d8c483 Mon Sep 17 00:00:00 2001 From: AlexWells Date: Thu, 9 Mar 2023 10:20:51 +0000 Subject: [PATCH 5/9] Continue CI testing --- .github/workflows/code.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index 2bf11f86..701b938c 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -57,14 +57,14 @@ jobs: python: [cp39] include: - # Put coverage and results files in the project directory for mac - - os: macos-latest - cov_file: "{project}/dist/coverage.xml" - results_file: "{project}/dist/pytest-results.xml" - # And for windows - - os: windows-latest - cov_file: "{project}/dist/coverage.xml" - results_file: "{project}/dist/pytest-results.xml" + # # Put coverage and results files in the project directory for mac + # - os: macos-latest + # cov_file: "{project}/dist/coverage.xml" + # results_file: "{project}/dist/pytest-results.xml" + # # And for windows + # - os: windows-latest + # cov_file: "{project}/dist/coverage.xml" + # results_file: "{project}/dist/pytest-results.xml" # But put coverage and results files in the output dir mounted in docker for linux - os: ubuntu-latest cov_file: /output/coverage.xml @@ -93,7 +93,7 @@ jobs: - name: Build Wheel run: cibuildwheel --output-dir dist env: - CIBW_BUILD: cp39-manylinux_aarch64 + CIBW_BUILD: "*aarch64 aarch64*" CIBW_TEST_EXTRAS: dev CIBW_TEST_COMMAND: pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows... From 09a20ce89972acab30c4a3854ba53559a6ea199a Mon Sep 17 00:00:00 2001 From: AlexWells Date: Thu, 9 Mar 2023 16:28:49 +0000 Subject: [PATCH 6/9] Add QEMU setup --- .github/workflows/code.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index 701b938c..4764c61f 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -90,10 +90,16 @@ jobs: # Pin cibuildwheel due to https://github.com/pypa/cibuildwheel/issues/962 run: pip install build cibuildwheel>=2.3.1 + - name: Set up QEMU + if: runner.os == 'Linux' + uses: docker/setup-qemu-action@v2 + with: + platforms: all + - name: Build Wheel run: cibuildwheel --output-dir dist env: - CIBW_BUILD: "*aarch64 aarch64*" + CIBW_BUILD: cp39-manylinux_aarch64 CIBW_TEST_EXTRAS: dev CIBW_TEST_COMMAND: pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows... From 8b3d210acd01c1d3776d5f02740cbc99ff3916d4 Mon Sep 17 00:00:00 2001 From: AlexWells Date: Thu, 9 Mar 2023 16:35:17 +0000 Subject: [PATCH 7/9] Specify architectures to build on --- .github/workflows/code.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index 4764c61f..b660a1a2 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -99,7 +99,7 @@ jobs: - name: Build Wheel run: cibuildwheel --output-dir dist env: - CIBW_BUILD: cp39-manylinux_aarch64 + # CIBW_BUILD: cp39-manylinux_aarch64 CIBW_TEST_EXTRAS: dev CIBW_TEST_COMMAND: pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows... @@ -110,6 +110,7 @@ jobs: CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 CIBW_ENVIRONMENT_LINUX: SETUPTOOLS_DSO_PLAT_NAME=manylinux2014_x86_64 CIBW_SKIP: "*-musllinux*" # epicscorelibs doesn't build on musllinux platforms + CIBW_ARCHS_LINUX: auto aarch64 - name: Upload Wheel uses: actions/upload-artifact@v2 From 739f369c69885f74006f9de2d66c068b80f694be Mon Sep 17 00:00:00 2001 From: AlexWells Date: Fri, 10 Mar 2023 09:26:14 +0000 Subject: [PATCH 8/9] Only build one platform's wheels --- .github/workflows/code.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index b660a1a2..cb661176 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -99,7 +99,7 @@ jobs: - name: Build Wheel run: cibuildwheel --output-dir dist env: - # CIBW_BUILD: cp39-manylinux_aarch64 + CIBW_BUILD: ${{ matrix.python }}*64 CIBW_TEST_EXTRAS: dev CIBW_TEST_COMMAND: pytest {project}/tests --cov-report xml:${{ matrix.cov_file }} --junit-xml=${{ matrix.results_file }} # Run with faulthandler and -s in the hope we get a stack trace on seg fault on windows... From ce886546c55bd16c521ed30319b3b30b7383ef15 Mon Sep 17 00:00:00 2001 From: AlexWells Date: Fri, 10 Mar 2023 10:42:08 +0000 Subject: [PATCH 9/9] Remove different x86_64 and aarch64 images --- .github/workflows/code.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml index cb661176..ee83445d 100644 --- a/.github/workflows/code.yml +++ b/.github/workflows/code.yml @@ -107,8 +107,9 @@ jobs: # 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: manylinux2014 - CIBW_ENVIRONMENT_LINUX: SETUPTOOLS_DSO_PLAT_NAME=manylinux2014_x86_64 + # CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 + # CIBW_MANYLINUX_AARCH64_IMAGE: + # CIBW_ENVIRONMENT_LINUX: SETUPTOOLS_DSO_PLAT_NAME=manylinux2014_x86_64 CIBW_SKIP: "*-musllinux*" # epicscorelibs doesn't build on musllinux platforms CIBW_ARCHS_LINUX: auto aarch64