diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 086c2ad..a421b9f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,16 +11,10 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.12" - - - name: Install Python dependencies - run: python -m pip install -r requirements.txt - - name: Build sdist - run: make sdist + run: | + python -m pip install --upgrade pip build + python -m build --sdist - name: Release uses: softprops/action-gh-release@v2 @@ -34,136 +28,31 @@ jobs: name: sdist path: dist/*.tar.gz - Linux: - - strategy: - # Allows for matrix sub-jobs to fail without canceling the rest - fail-fast: false - - matrix: - image: - - manylinux1_x86_64 - - manylinux1_i686 - - manylinux_2_24_i686 - - manylinux_2_24_x86_64 - - manylinux_2_28_x86_64 - - musllinux_1_1_x86_64 - #- manylinux_2_24_ppc64le - #- manylinux_2_24_s390x - pyversion: ["cp"] # all CPython versions - - include: - - image: manylinux_2_24_aarch64 - pyversion: "cp37" - - image: manylinux_2_24_aarch64 - pyversion: "cp38" - - image: manylinux_2_24_aarch64 - pyversion: "cp39" - - image: manylinux_2_24_aarch64 - pyversion: "cp310" - - image: manylinux_2_24_aarch64 - pyversion: "cp311" - - image: manylinux_2_28_aarch64 - pyversion: "cp312" - - image: manylinux_2_28_aarch64 - pyversion: "cp313" - - - image: musllinux_1_1_aarch64 - pyversion: "cp37" - - image: musllinux_1_1_aarch64 - pyversion: "cp38" - - image: musllinux_1_1_aarch64 - pyversion: "cp39" - - image: musllinux_1_1_aarch64 - pyversion: "cp310" - - image: musllinux_1_1_aarch64 - pyversion: "cp311" - - image: musllinux_1_1_aarch64 - pyversion: "cp312" - - image: musllinux_1_1_aarch64 - pyversion: "cp313" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.12" - - - name: Install Dependencies - run: | - python -m pip install -r requirements.txt - - - name: Building wheel - run: | - make MANYLINUX_PYTHON="${{ matrix.pyversion }}*" sdist wheel_${{ matrix.image }} - - - name: Copy wheels in dist - run: cp -v wheelhouse*/fastrlock*.whl dist/ - - - name: Release - uses: softprops/action-gh-release@v2 - if: startsWith(github.ref, 'refs/tags/') - with: - files: dist/*-m*linux*.whl # manylinux / musllinux - - - name: Archive Wheels - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.image }}-${{ matrix.pyversion }} - path: dist/ # manylinux / musllinux - if-no-files-found: ignore - - other: - + build_wheels: + name: Build wheels on ${{ matrix.os }} + runs-on: ${{ matrix.os }} strategy: # Allows for matrix sub-jobs to fail without canceling the rest fail-fast: false - matrix: - os: [macos-latest, windows-latest] - python-version: - - "3.8" - - "3.9" - - "3.10" - - "3.11" - - "3.12" - - "3.13" - - "3.14-dev" - - runs-on: ${{ matrix.os }} - - env: - MACOSX_DEPLOYMENT_TARGET: "11.0" + os: [ubuntu-24.04, ubuntu-24.04-arm, windows-latest, macos-latest] steps: - - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} + - uses: actions/checkout@v5 - - name: Install Dependencies - run: | - python -m pip install -r requirements.txt + - name: Build wheels + uses: pypa/cibuildwheel@v3.3.0 + with: + output-dir: dist - - name: Building wheel - run: | - python setup.py bdist_wheel + - name: Release + uses: softprops/action-gh-release@v2 + if: startsWith(github.ref, 'refs/tags/') + with: + files: ./dist/*-m*linux*.whl # manylinux / musllinux - - name: Release - uses: softprops/action-gh-release@v2 - if: startsWith(github.ref, 'refs/tags/') - with: - files: dist/*.whl + - uses: actions/upload-artifact@v4 + with: + name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} + path: dist/*.whl - - name: Archive Wheels - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.os }}-${{ matrix.python-version }}-wheels - path: dist/*.whl - if-no-files-found: ignore diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..42f706c --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,6 @@ +[build-system] +requires = ["setuptools", "wheel", "Cython>=3.0.11"] +build-backend = "setuptools.build_meta" + +[tool.cibuildwheel] +test-command = "python {project}/fastrlock/tests/test_rlock.py"