Skip to content

Use full path to allow inclusion for local testing #276

Use full path to allow inclusion for local testing

Use full path to allow inclusion for local testing #276

Workflow file for this run

# -*- coding: utf-8 -*-
# :Project: python-rapidjson -- Github Actions configuration
# :Created: Fri Oct 2 06:52:59 2020 CEST
# :Author: Martin Thoma <[email protected]>
# :License: MIT License
# :Copyright: © 2020 Martin Thoma
# :Copyright: © 2020, 2021, 2022, 2023, 2024 Lele Gaifax
#
# For more information see:
# https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
# and
# https://packaging.python.org/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/
name: Build, test and upload to PyPI
on:
push:
branches: [ yggdrasil, scikit_build_core ]
pull_request:
branches: [ yggdrasil ]
jobs:
tests:
name: All tests, on current Python
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.11]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install -r requirements-test.txt
pip install -v .
- name: Tests
run: |
pytest -sv tests
- name: Doctests
run: |
make -C docs doctest -e PYTHON=$(which python3)
debug-tests:
name: Memory leak tests, on current debug build Python
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.11]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: deadsnakes/[email protected]
with:
python-version: ${{ matrix.python-version }}
debug: true
- name: Install dependencies
run: |
pip install -r requirements-test.txt
pip install --config-settings=cmake.build-type="Debug" --config-settings=cmake.define.RAPIDJSON_CHECK_PYREFS:BOOL=ON -v .
- run: |
pytest -sv tests
build_wheels:
name: Build wheels on ${{matrix.arch}} for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-22.04
- macos-12
- windows-2019
arch:
- auto
include:
- os: ubuntu-22.04
arch: aarch64
# - os: ubuntu-22.04
# arch: ppc64le
- os: macos-14
arch: arm64
fail-fast: false
steps:
- name: Checkout sources
uses: actions/checkout@v4
with:
submodules: true
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- uses: docker/setup-qemu-action@v3
if: ${{ matrix.arch == 'aarch64' || matrix.arch == 'ppc64le' }}
name: Set up QEMU
- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_ARCHS_LINUX: ${{ matrix.arch }}
CIBW_ARCHS_MACOS: ${{ matrix.arch }}
CIBW_TEST_REQUIRES: "pytest pytest-benchmark pytz"
CIBW_TEST_COMMAND: "pytest -sv {project}/tests"
CIBW_SKIP: "cp2* cp33* cp34* cp35* cp36* pp* cp310-manylinux_i686 cp311-manylinux_i686 cp312-manylinux_i686 *-musllinux_*"
CIBW_ENVIRONMENT: "PIP_ONLY_BINARY=numpy"
# CIBW_BEFORE_BUILD: python -m pip install oldest-supported-numpy
# CIBW_PRERELEASE_PYTHONS: True
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheels-for-${{ matrix.os }}-${{ matrix.arch }}
path: ./wheelhouse/*.whl
# upload_wheels:
# name: Upload wheels to PyPI
# needs: build_wheels
# runs-on: ubuntu-latest
# # Upload to PyPI on every tag starting with 'v'
# if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
# steps:
# - uses: actions/download-artifact@v4
# with:
# path: dist
# pattern: wheels-for-*
# merge-multiple: true
# - uses: pypa/gh-action-pypi-publish@release/v1
# with:
# user: __token__
# password: ${{ secrets.PYPI_API_TOKEN }}