From d371d330446dc5776fc1c983b9bed596ddbbf632 Mon Sep 17 00:00:00 2001 From: Jimisola Laursen Date: Wed, 10 Jan 2024 21:06:36 +0100 Subject: [PATCH] Move cibuildwheel config to pyproject.toml --- .github/workflows/tests.yml | 79 ++++++++++++++++++++++++++++++++++++ .github/workflows/wheels.yml | 19 ++------- pyproject.toml | 23 +++++++++++ 3 files changed, 105 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 000000000..87e5f6c25 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,79 @@ +name: Tests + +on: + pull_request: + push: + paths-ignore: + - '**.rst' + +jobs: + x86_64: + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: ubuntu-22.04 + python-version: 3.8 + - os: ubuntu-22.04 + python-version: '3.12' + - os: ubuntu-22.04 + python-version: 'pypy3.9' + - os: macos-latest + python-version: 3.8 + + steps: + - name: Checkout pygit2 + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + - name: Linux + if: runner.os == 'Linux' + run: | + sudo apt install tinyproxy + LIBSSH2_VERSION=1.11.0 LIBGIT2_VERSION=1.7.1 /bin/sh build.sh test + + - name: macOS + if: runner.os == 'macOS' + run: | + export OPENSSL_PREFIX=`brew --prefix openssl@1.1` + LIBSSH2_VERSION=1.11.0 LIBGIT2_VERSION=1.7.1 /bin/sh build.sh test + + aarch64: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Build & test + uses: uraimo/run-on-arch-action@v2 + with: + arch: aarch64 + distro: ubuntu20.04 + install: | + apt-get update -q -y + apt-get install -q -y cmake libssl-dev python3-dev python3-venv wget + run: | + LIBSSH2_VERSION=1.11.0 LIBGIT2_VERSION=1.7.1 /bin/sh build.sh test + + s390x: + runs-on: ubuntu-22.04 + if: github.ref == 'refs/heads/master' + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Build & test + uses: uraimo/run-on-arch-action@v2 + with: + arch: s390x + distro: ubuntu20.04 + install: | + apt-get update -q -y + apt-get install -q -y cmake libssl-dev python3-dev python3-venv wget + run: | + LIBSSH2_VERSION=1.11.0 LIBGIT2_VERSION=1.7.1 /bin/sh build.sh test + continue-on-error: true # Tests are expected to fail, see issue #812 diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 1e07dd2ce..5224d48b9 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -4,7 +4,6 @@ on: push: branches: - master - - musl tags: - 'v*' @@ -14,7 +13,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-22.04] #, macos-latest] + os: [ubuntu-22.04, macos-latest] steps: - uses: actions/checkout@v3 @@ -31,20 +30,7 @@ jobs: - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse - env: - CIBW_BEFORE_ALL: sh build.sh - CIBW_ENVIRONMENT: LIBGIT2_VERSION=1.7.1 LIBSSH2_VERSION=1.11.0 OPENSSL_VERSION=3.1.3 LIBGIT2=/project/ci - CIBW_ENVIRONMENT_MACOS: LIBGIT2_VERSION=1.7.1 LIBSSH2_VERSION=1.11.0 OPENSSL_VERSION=3.1.3 LIBGIT2=/Users/runner/work/pygit2/pygit2/ci - CIBW_SKIP: "pp3* *manylinux* cp36* cp37* cp38* cp39* cp310* cp311*" - CIBW_BUILD: "cp312-musllinux_x86_64" - CIBW_MANYLINUX_AARCH64_IMAGE: "manylinux2014" - CIBW_MANYLINUX_X86_64_IMAGE: "manylinux2014" - #CIBW_REPAIR_WHEEL_COMMAND_LINUX: "LD_LIBRARY_PATH=/project/ci/lib64 auditwheel repair -w {dest_dir} {wheel}" - CIBW_REPAIR_WHEEL_COMMAND_LINUX: "LD_LIBRARY_PATH=/project/ci/lib auditwheel repair -w {dest_dir} {wheel}" - CIBW_REPAIR_WHEEL_COMMAND_MACOS: "DYLD_LIBRARY_PATH=/Users/runner/work/pygit2/pygit2/ci/lib delocate-wheel --require-archs {delocate_archs} -w {dest_dir} {wheel}" - CIBW_ARCHS_MACOS: universal2 - CIBW_ARCHS_LINUX: x86_64 # aarch64 - + - uses: actions/upload-artifact@v3 with: name: wheels @@ -68,3 +54,4 @@ jobs: with: user: __token__ password: ${{ secrets.PYPI_API_TOKEN }} + \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index d1e6ae6e5..937a6fd75 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,2 +1,25 @@ [build-system] requires = ["setuptools", "wheel"] + +[tool.cibuildwheel] +skip = "pp3*" + +archs = ["auto"] +build-frontend = "default" +dependency-versions = "pinned" +environment = {LIBGIT2_VERSION="1.7.1", LIBSSH2_VERSION="1.11.0", OPENSSL_VERSION="3.1.3", LIBGIT2="/project/ci"} + +before-all = "sh build.sh" + +[tool.cibuildwheel.linux] +repair-wheel-command = "LD_LIBRARY_PATH=/project/ci/lib64 auditwheel repair -w {dest_dir} {wheel}" +archs = ["x86_64", "aarch64"] + +[[tool.cibuildwheel.overrides]] +select = "*-musllinux*" +repair-wheel-command = "LD_LIBRARY_PATH=/project/ci/lib auditwheel repair -w {dest_dir} {wheel}" + +[tool.cibuildwheel.macos] +environment = {LIBGIT2_VERSION="1.7.1", LIBSSH2_VERSION="1.11.0", OPENSSL_VERSION="3.1.3", LIBGIT2="/Users/runner/work/pygit2/pygit2/ci"} +repair-wheel-command = "DYLD_LIBRARY_PATH=/Users/runner/work/pygit2/pygit2/ci/lib delocate-wheel --require-archs {delocate_archs} -w {dest_dir} {wheel}" +archs = ["universal2"] \ No newline at end of file