Files
tamerye/.gitea/workflows/build-and-test.yml
T
oysteikt 097ba79f6e
Build and test / build-dynamic-library (push) Successful in 43s
Build and test / check (push) Successful in 47s
Build and test / build-static-library (push) Successful in 52s
Build and test / test (push) Successful in 54s
.gitea/workflows/build-and-test: rewrite to debian native build
2026-05-07 01:35:13 +09:00

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"