From 99b99a1c5f6fb4a24803926e7f1f4b68eaeea463 Mon Sep 17 00:00:00 2001 From: Hiroyuki Tanaka Date: Sat, 10 Feb 2024 10:09:00 +0900 Subject: [PATCH] overhaul ci --- .github/workflows/CI_CD_workflow.yml | 75 --------------------------- .github/workflows/build.yml | 76 ++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 75 deletions(-) delete mode 100644 .github/workflows/CI_CD_workflow.yml create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/CI_CD_workflow.yml b/.github/workflows/CI_CD_workflow.yml deleted file mode 100644 index 625ecf1..0000000 --- a/.github/workflows/CI_CD_workflow.yml +++ /dev/null @@ -1,75 +0,0 @@ -name: CI_CD - -on: push - -jobs: - build_wheels: - name: Build wheels on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macOS-latest] - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up QEMU - if: runner.os == 'Linux' - uses: docker/setup-qemu-action@v1 - with: - platforms: all - - - name: Build wheels - uses: joerick/cibuildwheel@v2.11.1 - with: - output-dir: wheelhouse - # to supply options, put them in 'env', like: - env: - CIBW_SKIP: "{cp27-*}" - CIBW_TEST_REQUIRES: pytest - CIBW_TEST_COMMAND: "pytest {project}/test" - CIBW_ARCHS_MACOS: "x86_64 universal2 arm64" - CIBW_ARCHS_LINUX: "auto aarch64" - - - name: Show built files - shell: bash - run: ls -la wheelhouse - - - uses: actions/upload-artifact@v3 - with: - name: wheels - path: ./wheelhouse/*.whl - - deploy: - name: Uploading to PyPi - runs-on: ubuntu-latest - if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') - needs: [build_wheels] - steps: - - name: Checkout code - uses: actions/checkout@v3 - - name: Set up Python 3.9 - uses: actions/setup-python@v4 - with: - python-version: 3.9 - - name: setup build - run: pip install build - - name: Build sdist - run: python -m build --sdist . - - - name: Download wheels - uses: actions/download-artifact@v3 - with: - name: wheels - path: dist - - - name: Show files to upload - shell: bash - run: ls -la dist - - - name: Publish package - uses: pypa/gh-action-pypi-publish@release/v1 - with: - user: __token__ - password: ${{ secrets.PYPI_API_TOKEN }} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..3177495 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,76 @@ +name: Build and upload to PyPI + +on: + workflow_dispatch: + pull_request: + # push: + # branches: + # - main + release: + types: + - published + +jobs: + build_wheels: + name: Build wheels on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macOS-latest] + + steps: + - uses: actions/checkout@v4 + - name: Set up QEMU + if: runner.os == 'Linux' + uses: docker/setup-qemu-action@v1 + with: + platforms: all + - name: Build wheels + uses: pypa/cibuildwheel + env: + CIBW_SKIP: "{cp27-*}" + CIBW_TEST_REQUIRES: pytest + CIBW_TEST_COMMAND: "pytest {project}/test" + CIBW_ARCHS_MACOS: "x86_64 universal2 arm64" + CIBW_ARCHS_LINUX: "auto aarch64" + - name: Show built files + shell: bash + run: ls -la wheelhouse + - uses: actions/upload-artifact@v4 + with: + name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} + path: ./wheelhouse/*.whl + + build_sdist: + name: Build source distribution + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Build sdist + run: pipx run build --sdist + + - uses: actions/upload-artifact@v4 + with: + name: cibw-sdist + path: dist/*.tar.gz + + upload_pypi: + needs: [build_wheels, build_sdist] + runs-on: ubuntu-latest + environment: pypi + permissions: + id-token: write + if: github.event_name == 'release' && github.event.action == 'published' + # or, alternatively, upload to PyPI on every tag starting with 'v' (remove on: release above to use this) + # if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') + steps: + - uses: actions/download-artifact@v4 + with: + # unpacks all CIBW artifacts into dist/ + pattern: cibw-* + path: dist + merge-multiple: true + - uses: pypa/gh-action-pypi-publish@release/v1 + # with: + # To test: repository-url: https://test.pypi.org/legacy/