From 5a0a65c3cf18a3cd1c15dc4d6585c915ada68354 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Fri, 2 Jan 2026 17:58:41 +0900 Subject: [PATCH] .gitea/workflows/build-and-test: init --- .gitea/workflows/build-and-test.yml | 111 ++++++++++++++++++++++++++++ README.md | 3 + 2 files changed, 114 insertions(+) create mode 100644 .gitea/workflows/build-and-test.yml diff --git a/.gitea/workflows/build-and-test.yml b/.gitea/workflows/build-and-test.yml new file mode 100644 index 0000000..a7b2202 --- /dev/null +++ b/.gitea/workflows/build-and-test.yml @@ -0,0 +1,111 @@ +name: "Build and test" +run-name: "Build and test" +on: + push: + branches: + - main + pull_request: + +env: + BINSTALL_DISABLE_TELEMETRY: 'true' + +jobs: + build: + runs-on: debian-latest + steps: + - uses: actions/checkout@v6 + + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Build + run: cargo build --all-features --verbose --release + + 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 + - uses: cargo-bins/cargo-binstall@main + + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@nightly + with: + components: llvm-tools-preview + + - name: Install nextest + run: cargo binstall -y cargo-nextest --secure + + - name: Run tests + run: cargo nextest run --release --no-fail-fast + env: + RUST_LOG: "trace" + RUSTFLAGS: "-Cinstrument-coverage" + LLVM_PROFILE_FILE: "target/coverage/%p-%m.profraw" + + - name: Install grcov + run: cargo binstall -y grcov + + - name: Generate coverage report + run: | + grcov \ + --source-dir . \ + --binary-path ./target/release/deps/ \ + --excl-start 'mod test* \{' \ + --ignore 'tests/*' \ + --ignore "*test.rs" \ + --ignore "*tests.rs" \ + --ignore "*github.com*" \ + --ignore "*libcore*" \ + --ignore "*rustc*" \ + --ignore "*liballoc*" \ + --ignore "*cargo*" \ + -t html \ + -o ./target/coverage/html \ + target/coverage/ + + - name: Upload test report + uses: https://git.pvv.ntnu.no/Projects/rsync-action@v1 + with: + source: target/coverage/html/ + target: ${{ gitea.ref_name }}/coverage/ + username: gitea-web + ssh-key: ${{ secrets.WEB_SYNC_SSH_KEY }} + host: pages.pvv.ntnu.no + known-hosts: "pages.pvv.ntnu.no ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH2QjfFB+city1SYqltkVqWACfo1j37k+oQQfj13mtgg" + + docs: + runs-on: debian-latest + steps: + - uses: actions/checkout@v6 + + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Build docs + run: cargo doc --all-features --document-private-items --release + + - name: Transfer files + uses: https://git.pvv.ntnu.no/Projects/rsync-action@main + with: + source: target/doc/ + target: ${{ gitea.ref_name }}/docs/ + username: gitea-web + ssh-key: ${{ secrets.WEB_SYNC_SSH_KEY }} + host: pages.pvv.ntnu.no + known-hosts: "pages.pvv.ntnu.no ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH2QjfFB+city1SYqltkVqWACfo1j37k+oQQfj13mtgg" diff --git a/README.md b/README.md index 791d65c..ba251de 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +[![Coverage](https://pages.pvv.ntnu.no/oysteikt/roowho2/main/coverage/badges/for_the_badge.svg)](https://pages.pvv.ntnu.no/oysteikt/roowho2/main/coverage/) +[![Docs](https://img.shields.io/badge/rust_docs-blue?style=for-the-badge&logo=rust)](https://pages.pvv.ntnu.no/oysteikt/roowho2/main/docs/roowho2/) + # roowhoo2 Reimplementation of a subset of linux' netkit tools.