From 7d6b43a7f025ed5796638461708e6ae541c5f1b6 Mon Sep 17 00:00:00 2001 From: Lyonnet <45119583+lexiforest@users.noreply.github.com> Date: Fri, 29 Nov 2024 18:19:36 +0800 Subject: [PATCH] CI fix for artifacts (#447) * Use different names in uploading artifacts * Add missing dollar signs for github variables and test release * Test unzip to a given directory * Always download * Escape for unzip * Download in a separate folder * Bump version to 0.8.0b3 * Link with C++ * Build Linux only * CI fix * Reenable macOS * Update build-and-test.yaml * Reenable PyPI publish --- .github/workflows/build-and-test.yaml | 107 +++++++++++++++----------- pyproject.toml | 2 +- scripts/build.py | 1 + 3 files changed, 62 insertions(+), 48 deletions(-) diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml index 3910821..ef71189 100644 --- a/.github/workflows/build-and-test.yaml +++ b/.github/workflows/build-and-test.yaml @@ -19,70 +19,82 @@ jobs: name: Lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.10' - - run: | - pip install mypy ruff - make lint + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + - run: | + pip install mypy ruff + make lint sdist: name: Build sdist wheel runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.10' + - uses: actions/setup-python@v5 + with: + python-version: '3.10' - - name: build sdist - run: | - make preprocess - pip install build - python -m build --sdist - pip install ./dist/*.tar.gz + - name: build sdist + run: | + make preprocess + pip install build + python -m build --sdist + pip install ./dist/*.tar.gz - - name: upload artifacts - uses: actions/upload-artifact@v4 # https://github.com/actions/upload-artifact/issues/478 - with: - path: ./dist/*.tar.gz - overwrite: true + - name: upload artifacts + uses: actions/upload-artifact@v4 # https://github.com/actions/upload-artifact/issues/478 + with: + name: curl_cffi-${{ github.sha }}-sdist.zip + path: ./dist/*.tar.gz bdist: name: Build bdist wheels and test runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-22.04, macos-12, macos-14, windows-2019] + # os: [ubuntu-22.04, macos-12, macos-14, windows-2019] + os: [ubuntu-22.04, macos-12, macos-14] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.10' + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + + - if: runner.os == 'Linux' + uses: docker/setup-qemu-action@v3 + with: + platforms: all - - if: runner.os == 'Linux' - uses: docker/setup-qemu-action@v3 - with: - platforms: all + # macOS make is too old + - if: runner.os == 'macOS' + run: | + brew install make automake libtool - # macOS make is too old - - if: runner.os == 'macOS' - run: | - brew install make automake libtool + - name: Build and test wheels + uses: pypa/cibuildwheel@v2.17.0 - - name: Build and test wheels - uses: pypa/cibuildwheel@v2.17.0 + # - name: Setup tmate session + # uses: mxschmitt/action-tmate@v3 + + - uses: actions/upload-artifact@v4 # https://github.com/actions/upload-artifact/issues/478 + with: + name: curl_cffi-${{ github.sha }}-${{ matrix.os }}.zip + path: ./wheelhouse/*.whl + + - uses: actions/download-artifact@v4.1.7 # https://github.com/actions/upload-artifact/issues/478 + with: + pattern: curl_cffi-* + path: download - # - name: Setup tmate session - # uses: mxschmitt/action-tmate@v3 + - run: | + ls download + unzip download/\*.zip -d download + ls -al download - - uses: actions/upload-artifact@v4 # https://github.com/actions/upload-artifact/issues/478 - with: - path: ./wheelhouse/*.whl - overwrite: true upload_all: needs: [bdist, sdist] @@ -91,18 +103,19 @@ jobs: - uses: actions/download-artifact@v4.1.7 # https://github.com/actions/upload-artifact/issues/478 if: startsWith(github.ref, 'refs/tags/') with: - name: artifact - path: dist + pattern: curl_cffi-* + path: download - uses: pypa/gh-action-pypi-publish@v1.8.14 if: startsWith(github.ref, 'refs/tags/') with: password: ${{ secrets.PYPI_TOKEN }} + packages-dir: download/ - name: Upload release files if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v2 with: files: | - ./dist/*.whl - ./dist/*.tar.gz + ./download/*.whl + ./download/*.tar.gz diff --git a/pyproject.toml b/pyproject.toml index 21a7fdc..6a9155b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "curl_cffi" -version = "0.8.0b2" +version = "0.8.0b3" authors = [{ name = "Lyonnet", email = "infinitesheldon@gmail.com" }] description = "libcurl ffi bindings for Python, with impersonation support." license = { file = "LICENSE" } diff --git a/scripts/build.py b/scripts/build.py index 16ad362..97e189b 100644 --- a/scripts/build.py +++ b/scripts/build.py @@ -132,6 +132,7 @@ def get_curl_libraries(): str(root_dir / "ffi/shim.c"), ], extra_compile_args=(["-Wno-implicit-function-declaration"] if system == "Darwin" else []), + extra_link_args=(["-lstdc++"]), ) with open(root_dir / "ffi/cdef.c") as f: