Build wheels #43
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and upload wheels | |
on: | |
workflow_dispatch: | |
inputs: | |
job: | |
description: "Job to run" | |
required: true | |
default: "build_wheels" | |
options: | |
- build_wheels | |
- publish_test | |
jobs: | |
build_wheels: | |
name: Build wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
# macos-13 is an intel runner, macos-14 is apple silicon | |
os: [ubuntu-latest, macos-13, macos-14] | |
steps: | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.8 | |
if: runner.os == 'macOS' && runner.arch == 'ARM64' | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 # Fetch full history, necessary for git describe in setup.py | |
- name: Checkout charm_src # is this best practice? should we use a submodule? | |
uses: actions/checkout@v4 | |
with: | |
repository: charmplusplus/charm | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: charm_src/charm | |
fetch-depth: 0 # Fetch full history, necessary for commit_str parsing in setup.py | |
- name: Checkout charm_src # is this best practice? should we use a submodule? | |
uses: actions/checkout@v4 | |
with: | |
repository: charmplusplus/charm | |
token: ${{ secrets.GITHUB_TOKEN }} | |
path: charm_src/charm | |
fetch-depth: 0 # Fetch full history, necessary for commit_str parsing in setup.py | |
- name: Build wheels | |
env: | |
CIBW_SKIP: "pp* *-manylinux_i686 *-manylinux_ppc64le *-manylinux_s390x *musllinux_*" | |
uses: pypa/[email protected] | |
with: | |
package-dir: . | |
output-dir: ./wheelhouse | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} | |
path: ./wheelhouse/*.whl | |
publish_test: | |
name: Publish Python 🐍 distribution 📦 to TestPyPI | |
runs-on: ubuntu-latest | |
environment: | |
name: testpypi | |
url: https://test.pypi.org/p/charm4py | |
permissions: | |
id-token: write # IMPORTANT: mandatory for trusted publishing | |
steps: | |
- name: Download all the dists | |
uses: actions/download-artifact@v3 | |
with: | |
name: python-package-distributions | |
path: dist/ | |
- name: Publish distribution 📦 to TestPyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
repository-url: https://test.pypi.org/legacy/ |