101 lines
2.4 KiB
YAML
101 lines
2.4 KiB
YAML
name: "Build and test"
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request:
|
|
push:
|
|
|
|
env:
|
|
BINSTALL_DISABLE_TELEMETRY: 'true'
|
|
|
|
jobs:
|
|
build-dynamic-library:
|
|
runs-on: debian-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Install rust toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: rustfmt
|
|
|
|
- name: Build
|
|
run: cargo build --release
|
|
|
|
- name: Upload database as artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: tamerye-dynamic-library-${{ gitea.sha }}.zip
|
|
path: target/release/*.so
|
|
if-no-files-found: error
|
|
retention-days: 15
|
|
|
|
build-static-library:
|
|
runs-on: debian-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Install libsqlite3
|
|
run: apt-get install --update --assume-yes libsqlite3-dev
|
|
|
|
- name: Patch Cargo.toml to build static library
|
|
run: sed -i 's/cdylib/staticlib/' Cargo.toml
|
|
|
|
- name: Install rust toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: rustfmt
|
|
|
|
- name: Build
|
|
run: cargo build --release --features static
|
|
|
|
- name: Upload database as artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: tamerye-static-library-${{ gitea.sha }}.zip
|
|
path: target/release/*.a
|
|
if-no-files-found: error
|
|
retention-days: 15
|
|
|
|
check:
|
|
runs-on: debian-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Install rust toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: rustfmt, clippy
|
|
|
|
- name: Check code format
|
|
run: cargo fmt -- --check
|
|
|
|
- name: Check clippy
|
|
run: cargo clippy -- --deny warnings
|
|
|
|
test:
|
|
runs-on: debian-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- name: Install libsqlite3
|
|
run: apt-get install --update --assume-yes libsqlite3-dev
|
|
|
|
- name: Patch Cargo.toml to build static library
|
|
run: sed -i 's/cdylib/staticlib/' Cargo.toml
|
|
|
|
- name: Install rust toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
components: rustfmt
|
|
|
|
- name: Install cargo-binstall
|
|
uses: cargo-bins/cargo-binstall@main
|
|
|
|
- name: Install nextest
|
|
run: cargo binstall -y cargo-nextest --secure
|
|
|
|
- name: Run tests
|
|
run: cargo nextest run --release --no-fail-fast --features static
|
|
env:
|
|
RUST_LOG: "trace"
|