Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fix: work around pip bug #1356

fix: work around pip bug

fix: work around pip bug #1356

Workflow file for this run

name: CI
on:
workflow_dispatch:
inputs:
use_qemu:
description: 'Use qemu to build linux ppc64le & s390x'
required: true
default: true
schedule:
- cron: '0 18 * * 5' # "At 18:00 on Friday."
pull_request:
push:
branches:
- main
- py2-legacy
tags:
- "*.*.*"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
USE_QEMU: ${{ fromJSON(github.event.inputs.use_qemu || 'false') || (github.event_name == 'schedule') || startsWith(github.ref, 'refs/tags/') }}
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- uses: pre-commit/action@v3.0.1
build_wheels:
name: Build ${{ matrix.build }}${{ matrix.arch }} wheels on ${{ matrix.os }}
needs: [lint]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
arch: "x86_64"
build: "manylinux_"
use_qemu: false
- os: ubuntu-latest
arch: "x86_64"
build: "musllinux_"
use_qemu: false
- os: ubuntu-latest
arch: "i686"
build: "manylinux_"
use_qemu: false
- os: ubuntu-latest
arch: "i686"
build: "musllinux_"
use_qemu: false
- os: ubuntu-24.04-arm
arch: "aarch64"
build: "manylinux_"
use_qemu: false
- os: ubuntu-24.04-arm
arch: "aarch64"
build: "musllinux_"
use_qemu: false
- os: ubuntu-latest
arch: "ppc64le"
build: "manylinux_"
use_qemu: true
- os: ubuntu-latest
arch: "ppc64le"
build: "musllinux_"
use_qemu: true
- os: ubuntu-latest
arch: "s390x"
build: "manylinux_"
use_qemu: true
- os: ubuntu-latest
arch: "s390x"
build: "musllinux_"
use_qemu: true
- os: ubuntu-24.04-arm
arch: "armv7l"
build: "manylinux_"
use_qemu: false
- os: ubuntu-24.04-arm
arch: "armv7l"
build: "musllinux_"
use_qemu: false
- os: windows-2019
arch: "AMD64"
build: ""
use_qemu: false
- os: windows-2022
arch: "ARM64"
build: ""
use_qemu: false
- os: windows-2019
arch: "x86"
build: ""
use_qemu: false
- os: macos-14
arch: "universal2"
build: ""
use_qemu: false
steps:
- uses: actions/checkout@v4
if: (!matrix.use_qemu) || fromJSON(env.USE_QEMU)
with:
fetch-depth: 0 # required for versioneer to find tags
- uses: astral-sh/setup-uv@v6
if: (!matrix.use_qemu) || fromJSON(env.USE_QEMU)
with:
enable-cache: false
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.6.0
if: matrix.use_qemu && fromJSON(env.USE_QEMU)
- name: Build wheels
uses: pypa/cibuildwheel@v2.23
if: (!matrix.use_qemu) || fromJSON(env.USE_QEMU)
env:
CIBW_ARCHS: "${{ matrix.arch }}"
CIBW_BUILD: "cp39-${{ matrix.build }}*"
- uses: actions/upload-artifact@v4
if: (!matrix.use_qemu) || fromJSON(env.USE_QEMU)
with:
name: cibw-${{ runner.os }}-${{ matrix.build }}${{ matrix.arch }}
path: ./wheelhouse/*.whl
build_manylinux2010_wheels:
name: Build ${{ matrix.arch }} manylinux2010 wheels
needs: [lint]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- arch: "x86_64"
- arch: "i686"
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # required for versioneer to find tags
- name: Build wheels
uses: pypa/cibuildwheel@v2.23
env:
CIBW_ARCHS: "${{ matrix.arch }}"
CIBW_BUILD: "cp39-manylinux_*"
CIBW_MANYLINUX_X86_64_IMAGE: "manylinux2010"
CIBW_MANYLINUX_I686_IMAGE: "manylinux2010"
CIBW_BUILD_FRONTEND: "build"
- uses: actions/upload-artifact@v4
with:
name: cibw-manylinux2010-${{ matrix.arch }}
path: ./wheelhouse/*.whl
build_sdist:
name: Build source distribution
needs: [lint]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # required for versioneer to find tags
- name: Build SDist
run: pipx run build --sdist
- uses: actions/upload-artifact@v4
with:
name: cibw-sdist
path: dist/*.tar.gz
test_sdist:
name: Test SDist with python ${{ matrix.python }}
needs: [build_sdist]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python: ["3.8", "3.13"]
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
with:
enable-cache: false
- name: Setup environment
run: |
uv venv --python ${{ matrix.python }}
uv pip install --group test
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends libssl-dev
- uses: actions/download-artifact@v4
with:
name: cibw-sdist
path: dist
- name: Install SDist
env:
CMAKE_ARGS: "-DBUILD_CMAKE_FROM_SOURCE:BOOL=OFF"
run: |
uv pip install dist/*.tar.gz
rm -rf dist
- name: Test installed SDist
run: .venv/bin/pytest ./tests
bootstrap_build:
name: Source only build on ${{ matrix.os }}
needs: [lint]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
id: python
with:
python-version: "3.x"
- name: Remove cmake and ninja
shell: bash
run: |
# Remove cmake and ninja
set -euxo pipefail
# https://github.com/scikit-build/scikit-build-core/blob/3943920fa267dc83f9295279bea1c774c0916f13/src/scikit_build_core/program_search.py#L51
# https://github.com/scikit-build/scikit-build-core/blob/3943920fa267dc83f9295279bea1c774c0916f13/src/scikit_build_core/program_search.py#L70
for TOOL in cmake cmake3 ninja-build ninja samu; do
while which ${TOOL}; do
if [ "$RUNNER_OS" == "Windows" ]; then
rm -f "$(which ${TOOL})"
else
sudo rm -f $(which -a ${TOOL})
fi
done
done
- name: Build SDist
run: pipx run --python '${{ steps.python.outputs.python-path }}' build --sdist
- name: Install dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends libssl-dev
- name: Install SDist
shell: bash
env:
CMAKE_ARGS: "-DBUILD_CMAKE_FROM_SOURCE:BOOL=OFF"
CMAKE_BUILD_PARALLEL_LEVEL: "4"
MACOSX_DEPLOYMENT_TARGET: "10.10"
run: |
python -m pip install -v --no-binary='cmake,ninja' dist/*.tar.gz
rm -rf dist
- name: Test installed SDist
shell: bash
run: python -m pip install pytest pytest-cov && pytest ./tests
check_dist:
name: Check dist
needs: [build_wheels, build_manylinux2010_wheels, build_sdist, test_sdist, bootstrap_build]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
merge-multiple: true
path: dist
- run: pipx run twine check --strict dist/*
upload_pypi:
name: Upload to PyPI
needs: [check_dist]
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.repository == 'scikit-build/cmake-python-distributions' && startsWith(github.ref, 'refs/tags/')
environment:
name: pypi
url: https://pypi.org/p/cmake
permissions:
id-token: write
attestations: write
steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
merge-multiple: true
path: dist
- name: Generate artifact attestation for sdist and wheel
uses: actions/attest-build-provenance@c074443f1aee8d4aeeae555aebba3282517141b2 # v2.2.3
with:
subject-path: "dist/cmake-*"
- uses: pypa/gh-action-pypi-publish@release/v1
with:
attestations: true
Morty Proxy This is a proxified and sanitized view of the page, visit original site.