Upgrades dependencies #54
Workflow file for this run
This file contains 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: build | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
release: | |
types: | |
- published | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
fmt: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: rustup update && rustup component add rustfmt | |
- run: cargo fmt -- --check | |
clippy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: rustup update && rustup override set 1.80.1 && rustup component add clippy | |
- uses: Swatinem/rust-cache@v2 | |
- run: cargo clippy --all-targets -- -D warnings -D clippy::all | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: rustup update | |
- uses: Swatinem/rust-cache@v2 | |
- run: cargo test | |
test_msv: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: rustup update && rustup override set 1.76.0 | |
- uses: Swatinem/rust-cache@v2 | |
- run: cargo test | |
rustdoc: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: rustup update && rustup override set 1.80.1 | |
- uses: Swatinem/rust-cache@v2 | |
- run: cargo doc --no-deps | |
env: | |
RUSTDOCFLAGS: -D warnings | |
typos: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
- run: cargo install typos-cli || true | |
- run: typos | |
python_sdist: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- run: pip install maturin | |
- run: maturin sdist | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: wheels | |
path: target/wheels/*.tar.gz | |
wheel_linux: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
architecture: [ "x86_64", "aarch64" ] | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: linux/${{ matrix.architecture }} | |
if: matrix.architecture != 'x86_64' | |
- uses: Swatinem/rust-cache@v2 | |
- run: docker run -v "$(pwd)":/workdir --platform linux/${{ matrix.architecture }} quay.io/pypa/manylinux_2_28_${{ matrix.architecture }} /bin/bash /workdir/.github/workflows/manylinux_build.sh | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: wheels_${{ matrix.architecture }}_linux | |
path: target/wheels/*.whl | |
wheel_linux_musl: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
architecture: [ "x86_64" ] # TODO: aarch64 seems to fail for some reason | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: linux/${{ matrix.architecture }} | |
if: matrix.architecture != 'x86_64' | |
- uses: Swatinem/rust-cache@v2 | |
- run: docker run -v "$(pwd)":/workdir --platform linux/${{ matrix.architecture }} quay.io/pypa/musllinux_1_2_${{ matrix.architecture }} /bin/bash /workdir/.github/workflows/musllinux_build.sh | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: wheels_${{ matrix.architecture }}_linux_musl | |
path: target/wheels/*.whl | |
wheel_mac: | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
architecture: [ "x86_64", "aarch64" ] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
- run: rustup target add ${{ matrix.architecture }}-apple-darwin | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- run: pip install maturin | |
- run: maturin build --release --target ${{ matrix.architecture }}-apple-darwin | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: wheels_${{ matrix.architecture }}_macos | |
path: target/wheels/*.whl | |
wheel_windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- run: Remove-Item -LiteralPath "C:\msys64\" -Force -Recurse | |
- run: pip install maturin | |
- run: maturin build --release | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: wheels_x86_64_windows | |
path: target/wheels/*.whl | |
publish_pypi: | |
if: github.event_name == 'release' | |
runs-on: ubuntu-latest | |
environment: | |
name: pypi | |
url: https://pypi.org/p/turtlefmt | |
permissions: | |
id-token: write | |
needs: | |
- python_sdist | |
- wheel_windows | |
- wheel_mac | |
- wheel_linux | |
- wheel_linux_musl | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: wheels_* | |
path: dist | |
merge-multiple: true | |
- uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
packages-dir: dist | |
skip-existing: true | |
python_test: | |
runs-on: ubuntu-latest | |
needs: | |
- wheel_linux | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: wheels_* | |
path: dist | |
merge-multiple: true | |
- run: pip install --no-index --find-links=dist/ turtlefmt | |
- run: turtlefmt --check tests/to.simple.ttl |