Limit manylinux to 3.14 for faster testing #587
Workflow file for this run
This file contains hidden or 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: manylinux | |
| on: [push, pull_request] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.ref_name != 'master' }} | |
| jobs: | |
| cache_libs: | |
| uses: ./.github/workflows/cache_libs.yml | |
| secrets: inherit | |
| manylinux: | |
| needs: cache_libs | |
| runs-on: ubuntu-latest | |
| env: | |
| LIBXML2_VERSION: ${{ needs.cache_libs.outputs.LIBXML2_VERSION }} | |
| LIBXSLT_VERSION: ${{ needs.cache_libs.outputs.LIBXSLT_VERSION }} | |
| strategy: | |
| matrix: | |
| # python-abi: [cp39-cp39, cp310-cp310, cp311-cp311, cp312-cp312, cp313-cp313, cp314-cp314] | |
| python-abi: [cp314-cp314] | |
| image: | |
| - manylinux2014_x86_64 | |
| - manylinux_2_28_x86_64 | |
| - musllinux_1_2_x86_64 | |
| steps: | |
| - uses: actions/checkout@v5.0.0 | |
| with: | |
| fetch-depth: 0 | |
| - name: Cache [libs] | |
| uses: actions/cache/restore@v4.3.0 | |
| with: | |
| path: | | |
| libs/*.xz | |
| libs/*.gz | |
| libs/*.zip | |
| key: libs-${{ runner.os }}-${{ runner.arch }}-${{ env.LIBXML2_VERSION }}-${{ env.LIBXSLT_VERSION }} | |
| # Keep this job on the host runner so JS-based actions (for example actions/cache) | |
| # can run, then execute build/test inside the target manylinux/musllinux container. | |
| - name: Build and test in container | |
| env: | |
| PYXMLSEC_STATIC_DEPS: true | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| PY_ABI: ${{ matrix.python-abi }} | |
| MANYLINUX_IMAGE: ${{ matrix.image }} | |
| run: | | |
| set -euxo pipefail | |
| docker run --rm \ | |
| -v "$PWD:$PWD" \ | |
| -w "$PWD" \ | |
| -e GH_TOKEN \ | |
| -e PYXMLSEC_STATIC_DEPS \ | |
| -e PYXMLSEC_LIBXML2_VERSION \ | |
| -e PYXMLSEC_LIBXSLT_VERSION \ | |
| -e PY_ABI \ | |
| -e MANYLINUX_IMAGE \ | |
| -e HOST_UID="$(id -u)" \ | |
| -e HOST_GID="$(id -g)" \ | |
| "quay.io/pypa/${MANYLINUX_IMAGE}" \ | |
| sh -lc ' | |
| set -eu | |
| # Step: Install system build dependencies (manylinux only) | |
| case "$MANYLINUX_IMAGE" in | |
| manylinux*) | |
| yum install -y perl-core | |
| ;; | |
| esac | |
| # Step: Install python build dependencies | |
| /opt/python/${PY_ABI}/bin/pip install --upgrade pip setuptools wheel build setuptools_scm\>=8 | |
| # Step: Set environment variables | |
| PKGVER=$(/opt/python/${PY_ABI}/bin/python setup.py --version) | |
| echo "PKGVER=$PKGVER" | |
| # Step: Build linux_x86_64 wheel | |
| /opt/python/${PY_ABI}/bin/python -m build | |
| # Step: Label manylinux wheel | |
| ls -la dist/ | |
| auditwheel show dist/xmlsec-${PKGVER}-${PY_ABI}-linux_x86_64.whl | |
| auditwheel repair dist/xmlsec-${PKGVER}-${PY_ABI}-linux_x86_64.whl | |
| ls -la wheelhouse/ | |
| auditwheel show wheelhouse/xmlsec-${PKGVER}-${PY_ABI}-*${MANYLINUX_IMAGE}*.whl | |
| # Step: Install test dependencies | |
| /opt/python/${PY_ABI}/bin/pip install --upgrade -r requirements-test.txt | |
| /opt/python/${PY_ABI}/bin/pip install xmlsec --only-binary=xmlsec --no-index --find-links=wheelhouse/ | |
| # Step: Run tests | |
| /opt/python/${PY_ABI}/bin/pytest -v --color=yes | |
| # Step: Fix mounted workspace file ownership on host | |
| chown -R "${HOST_UID}:${HOST_GID}" dist wheelhouse build libs || true | |
| ' |