From 9a3bf7e29d5e33dff9d3ee0a50479c2914262d1d Mon Sep 17 00:00:00 2001 From: dofuuz <8174871+dofuuz@users.noreply.github.com> Date: Mon, 27 May 2024 23:05:21 +0900 Subject: [PATCH] Update Github workflows --- .github/workflows/build-dist.yml | 50 ++++++++++++++------------------ .github/workflows/run-test.yml | 16 +++++----- 2 files changed, 30 insertions(+), 36 deletions(-) diff --git a/.github/workflows/build-dist.yml b/.github/workflows/build-dist.yml index 8052b04..38fb5bf 100644 --- a/.github/workflows/build-dist.yml +++ b/.github/workflows/build-dist.yml @@ -1,7 +1,7 @@ name: Build and upload to PyPI # Build on every branch push, tag push, and pull request change: -on: [push, pull_request] +on: [push, pull_request, workflow_dispatch] # Alternatively, to publish when a (published) GitHub Release is created, use the following: # on: # push: @@ -15,8 +15,10 @@ jobs: name: Build wheels on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: - os: [ubuntu-22.04, windows-2022, macos-13] + # macos-13 is an intel runner, macos-14 is apple silicon + os: [ubuntu-22.04, windows-2022, macos-13, macos-14] steps: - uses: actions/checkout@v4 @@ -25,23 +27,16 @@ jobs: submodules: true - name: Build wheels - uses: pypa/cibuildwheel@v2.16.5 + uses: pypa/cibuildwheel@v2.17 env: # Skip builds(save time / avoid build error) CIBW_SKIP: "pp* *-musllinux_* *_i686 *-win32" - CIBW_ARCHS_MACOS: x86_64 arm64 - CIBW_BUILD_FRONTEND: "build" - uses: actions/upload-artifact@v4 with: - name: ${{ matrix.os }} + name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} path: ./wheelhouse/*.whl - - uses: softprops/action-gh-release@v2 - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') - with: - files: ./wheelhouse/*.whl - build_archs: name: Build wheels manylinux_aarch64 runs-on: ubuntu-22.04 @@ -58,22 +53,16 @@ jobs: platforms: all - name: Build wheels - uses: pypa/cibuildwheel@v2.16.5 + uses: pypa/cibuildwheel@v2.17 env: CIBW_ARCHS_LINUX: aarch64 CIBW_BUILD: cp*-manylinux_aarch64 - CIBW_BUILD_FRONTEND: "build" - uses: actions/upload-artifact@v4 with: - name: archs + name: cibw-wheels-archs path: ./wheelhouse/*.whl - - uses: softprops/action-gh-release@v2 - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') - with: - files: ./wheelhouse/*.whl - build_sdist: name: Build source distribution runs-on: ubuntu-22.04 @@ -83,21 +72,17 @@ jobs: fetch-depth: 0 submodules: true - - name: Build sdist - run: | - python -m pip install build - python -m build --sdist + - name: Build SDist + run: pipx run build --sdist + + - name: Check metadata + run: pipx run twine check dist/* - uses: actions/upload-artifact@v4 with: name: sdist path: dist/*.tar.gz - - uses: softprops/action-gh-release@v2 - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') - with: - files: dist/*.tar.gz - upload_pypi: needs: [build_wheels, build_archs, build_sdist] runs-on: ubuntu-latest @@ -112,7 +97,14 @@ jobs: pattern: "*" merge-multiple: true - - uses: pypa/gh-action-pypi-publish@v1.8.8 + - uses: softprops/action-gh-release@v2 + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') + with: + files: | + dist/*.tar.gz + dist/*.whl + + - uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.PYPI_API_TOKEN }} diff --git a/.github/workflows/run-test.yml b/.github/workflows/run-test.yml index aa53178..251701c 100644 --- a/.github/workflows/run-test.yml +++ b/.github/workflows/run-test.yml @@ -1,13 +1,11 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions - name: Run tests -on: [push, pull_request] +on: [push, pull_request, workflow_dispatch] jobs: build: strategy: + fail-fast: false matrix: python-version: ["3.9", "3.10", "3.11", "3.12", "pypy3.9"] os: [ubuntu-latest, windows-latest, macos-latest] @@ -23,10 +21,14 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Install library + - name: Set min macOS version + if: runner.os == 'macOS' run: | - python -m pip install --upgrade pip - python -m pip install .[test] + echo "MACOS_DEPLOYMENT_TARGET=10.14" >> $GITHUB_ENV + + - name: Build and install + run: python -m pip install pytest + pip install --verbose . - name: Test with pytest run: |