diff --git a/.copier-answers.yaml b/.copier-answers.yaml index 9f473e8..7b5b1ab 100644 --- a/.copier-answers.yaml +++ b/.copier-answers.yaml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: c2ea129 +_commit: b2cdb6d _src_path: https://github.com/python-project-templates/base.git add_docs: false add_extension: rust diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index db2f665..fa43cf7 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -33,87 +33,100 @@ jobs: python-version: ["3.11"] steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - - uses: actions-ext/python/setup@6e1b91a408ea89f49bc8aff8724f83826f7b5446 - with: - version: ${{ matrix.python-version }} - - - uses: actions-ext/rust/setup@2db8e3e4c56beb7320c7d730bd2c2d6a6447bf6b - - - name: Install dependencies - run: make develop - - - name: Lint - run: make lint - - - name: Checks - run: make checks - if: matrix.os == 'ubuntu-latest' - - - name: Build - run: make build - - - name: Test - run: make coverage - - - name: Upload test results (Python) - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - with: - name: test-results-${{ matrix.os }}-${{ matrix.python-version }} - path: '**/junit.xml' - if: ${{ always() }} - - - name: Publish Unit Test Results - uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0 - with: - files: '**/junit.xml' - if: matrix.os == 'ubuntu-latest' - - - name: Upload coverage - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 - with: - token: ${{ secrets.CODECOV_TOKEN }} - - - name: Set up QEMU - uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0 - with: - platforms: all - if: runner.os == 'Linux' && runner.arch == 'X64' - - - name: Make dist (Linux) - run: | - rm -rf dist - make dist-rs - make dist-py-sdist - make dist-py-wheel - make dist-check - shell: bash - if: matrix.os == 'ubuntu-latest' - - - name: Make dist (Macos / Windows) - run: | - rm -rf dist - make dist-py-wheel - make dist-check - shell: bash - env: - CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=11.0 - if: matrix.os != 'ubuntu-latest' - - - uses: actions-ext/python/test-wheel@6e1b91a408ea89f49bc8aff8724f83826f7b5446 - with: - module: turtles - if: matrix.os == 'ubuntu-latest' - - - uses: actions-ext/python/test-sdist@6e1b91a408ea89f49bc8aff8724f83826f7b5446 - with: - module: turtles - if: matrix.os == 'ubuntu-latest' - - - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - with: - name: dist-${{matrix.os}} - path: dist + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Setup Python + uses: actions-ext/python/setup@6e1b91a408ea89f49bc8aff8724f83826f7b5446 + with: + version: ${{ matrix.python-version }} + + - name: Setup Rust + uses: actions-ext/rust/setup@2db8e3e4c56beb7320c7d730bd2c2d6a6447bf6b + + - name: Install dependencies + run: make develop + + - name: Lint + run: make lint + + - name: Checks + run: make checks + if: matrix.os == 'ubuntu-latest' + + - name: Build + run: make build + + - name: Test + run: make coverage + + - name: Upload test results (Python) + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: test-results-${{ matrix.os }}-${{ matrix.python-version }} + path: '**/junit.xml' + if: ${{ always() }} + + - name: Publish test results + uses: EnricoMi/publish-unit-test-result-action@d0a4676d0e0b938bc201470d88276b7c74c712b3 # v2.24.0 + with: + files: '**/junit.xml' + if: matrix.os == 'ubuntu-latest' + + - name: Upload coverage + uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 + with: + token: ${{ secrets.CODECOV_TOKEN }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0 + with: + platforms: all + if: runner.os == 'Linux' && runner.arch == 'X64' + + - name: Free disk space + run: | + sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc /usr/local/.ghcup /usr/share/swift + df -h / + shell: bash + if: matrix.os == 'ubuntu-latest' + + - name: Build distributions (Linux) + run: | + rm -rf dist + make dist-rs + make dist-py-sdist + make dist-py-wheel + make dist-check + shell: bash + if: matrix.os == 'ubuntu-latest' + + - name: Build distributions (macOS/Windows) + run: | + rm -rf dist + make dist-py-wheel + make dist-check + shell: bash + env: + CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=11.0 + if: matrix.os != 'ubuntu-latest' + + - name: Test wheel + uses: actions-ext/python/test-wheel@6e1b91a408ea89f49bc8aff8724f83826f7b5446 + with: + module: turtles + if: matrix.os == 'ubuntu-latest' + + - name: Test source distribution + uses: actions-ext/python/test-sdist@6e1b91a408ea89f49bc8aff8724f83826f7b5446 + with: + module: turtles + if: matrix.os == 'ubuntu-latest' + + - name: Upload distributions + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: dist-${{matrix.os}} + path: dist diff --git a/.github/workflows/copier.yaml b/.github/workflows/copier.yaml index a936d5f..7171411 100644 --- a/.github/workflows/copier.yaml +++ b/.github/workflows/copier.yaml @@ -12,6 +12,7 @@ jobs: pull-requests: write runs-on: ubuntu-latest steps: - - uses: actions-ext/copier-update@378500315a83b5985e175139a55f1fa5ea6dde09 - with: - token: ${{ secrets.WORKFLOW_TOKEN }} + - name: Update from Copier + uses: actions-ext/copier/update@2061209faa6b75ffd4fcecc0b0983772767997f4 + with: + token: ${{ secrets.WORKFLOW_TOKEN }}