Fork of https://github.com/oxigraph/oxigraph.git for the purpose of NextGraph project
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
oxigraph/.github/workflows/build.yml

166 lines
5.0 KiB

name: build
on:
push:
branches:
- master
pull_request:
branches:
- master
schedule:
- cron: "0 0 * * 0"
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: rustup update && rustup component add rustfmt
- run: cargo fmt -- --check
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- run: rustup update && rustup component add clippy
- run: cargo clippy --all-targets --all-features
test_linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- run: rustup update
- run: cargo test --all-features
env:
RUST_BACKTRACE: 1
test_windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- run: rustup update
- run: Remove-Item -LiteralPath "C:\msys64\" -Force -Recurse
- run: cargo test --all-features
env:
RUST_BACKTRACE: 1
js:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: rustup update
- run: cargo install wasm-pack
- run: npm install
working-directory: ./js
- run: npm test
working-directory: ./js
python:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- run: rustup update
- uses: actions/setup-python@v2
with:
python-version: "3.10"
- run: python -m venv python/venv
- run: source python/venv/bin/activate && pip install --upgrade maturin sphinx
- run: source venv/bin/activate && maturin develop
working-directory: ./python
- run: source ../venv/bin/activate && python -m unittest
working-directory: ./python/tests
- run: source ../venv/bin/activate && sphinx-build -M doctest . build
working-directory: ./python/docs
- run: source ../venv/bin/activate && sphinx-build -M html . build
working-directory: ./python/docs
python_wheel_linux:
runs-on: ubuntu-latest
needs: python
strategy:
matrix:
architecture: ["x86_64", "aarch64"]
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: docker/setup-qemu-action@v1
if: matrix.architecture != 'x86_64'
with:
platforms: ${{ matrix.architecture }}
- run: sed 's/%arch%/${{ matrix.architecture }}/g' .github/workflows/manylinux_build.sh > .github/workflows/manylinux_build_script.sh
- run: docker run -v "$(pwd)":/workdir --platform linux/${{ matrix.architecture }} quay.io/pypa/manylinux2014_${{ matrix.architecture }} /bin/bash /workdir/.github/workflows/manylinux_build_script.sh
- uses: actions/upload-artifact@v2
with:
name: wheels
path: target/wheels/*.whl
- run: pip install pyoxigraph --no-index --find-links ../../target/wheels && python -m unittest
if: matrix.architecture == 'x86_64'
working-directory: ./python/tests
python_wheel_mac:
runs-on: macos-latest
needs: python
steps:
- uses: actions/checkout@v2
with:
submodules: true
- run: rustup update && rustup target add aarch64-apple-darwin
- uses: actions/setup-python@v2
with:
python-version: 3.7
- run: pip install maturin
- run: maturin build --release -m python/Cargo.toml --universal2
env:
DEVELOPER_DIR: '/Applications/Xcode.app/Contents/Developer'
SDKROOT: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk'
MACOSX_DEPLOYMENT_TARGET: '10.9'
- uses: actions/upload-artifact@v2
with:
name: wheels
path: target/wheels/*.whl
- run: pip install pyoxigraph --no-index --find-links ../../target/wheels && python -m unittest
working-directory: ./python/tests
python_wheel_windows:
runs-on: windows-latest
needs: python
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: actions/setup-python@v2
with:
python-version: 3.7
- run: rustup update
- run: Remove-Item -LiteralPath "C:\msys64\" -Force -Recurse
- run: pip install maturin
- run: maturin build --release -m python/Cargo.toml
- uses: actions/upload-artifact@v2
with:
name: wheels
path: target/wheels/*.whl
- run: pip install pyoxigraph --no-index --find-links ../../target/wheels && python -m unittest
working-directory: ./python/tests
binary_linux:
runs-on: ubuntu-latest
needs: test_linux
steps:
- uses: actions/checkout@v2
with:
submodules: true
- run: cargo build --release
working-directory: ./server
- uses: actions/upload-artifact@v2
with:
name: binary
path: target/release/oxigraph_server