Skip to content

Use oxrdf & oxrdfio instead of oxigraph #45

Use oxrdf & oxrdfio instead of oxigraph

Use oxrdf & oxrdfio instead of oxigraph #45

Workflow file for this run

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