Skip to content

Build wheels

Build wheels #170

Workflow file for this run

name: Build wheels
on:
workflow_dispatch:
inputs:
# scip_version:
# type: string
# description: SCIPOptSuite deployment version
# required: true
# default: "v0.4.0"
upload_to_pypi:
type: boolean
description: Should upload
required: false
default: true
test_pypi:
type: boolean
description: Use Test PyPI
required: false
default: true
jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-20.04
arch: x86_64
- os: macos-14
arch: arm64
- os: macos-13
arch: x86_64
- os: windows-latest
arch: AMD64
steps:
- uses: actions/checkout@v4
- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_TEST_REQUIRES: pytest
CIBW_TEST_COMMAND: "pytest {project}/tests"
CIBW_MANYLINUX_*_IMAGE: manylinux_2_28
- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os}}-${{ matrix.arch }}
path: ./wheelhouse/*.whl
build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
shell: bash -l {0}
run: pipx run build --sdist
- uses: actions/upload-artifact@v4
with:
name: source-distribution
path: dist/*.tar.gz
merge:
needs: [build_wheels, build_sdist]
runs-on: ubuntu-latest
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v4
upload_pypi:
needs: [build_wheels, build_sdist, merge]
runs-on: ubuntu-latest
if: github.event.inputs.upload_to_pypi == 'true'
steps:
- uses: actions/download-artifact@v4
with:
name: merged-artifacts
path: dist
- uses: pypa/gh-action-pypi-publish@release/v1
if: github.event.inputs.test_pypi == 'false'
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
verbose: true
- uses: pypa/gh-action-pypi-publish@release/v1
if: github.event.inputs.test_pypi == 'true'
with:
repository-url: https://test.pypi.org/legacy/
user: __token__
password: ${{ secrets.TESTPYPI_API_TOKEN }}
verbose: true