From 12aef1cd15887ca7755656f8e8812cc7093bc4d2 Mon Sep 17 00:00:00 2001 From: Markus Kohlhase Date: Mon, 22 Sep 2025 09:57:04 +0200 Subject: [PATCH] Add basic CI --- .github/workflows/build-and-test.yaml | 44 +++++++++++++++++++++++++ .github/workflows/dependency-audit.yaml | 35 ++++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 .github/workflows/build-and-test.yaml create mode 100644 .github/workflows/dependency-audit.yaml diff --git a/.github/workflows/build-and-test.yaml b/.github/workflows/build-and-test.yaml new file mode 100644 index 0000000..3b4af41 --- /dev/null +++ b/.github/workflows/build-and-test.yaml @@ -0,0 +1,44 @@ +# SPDX-FileCopyrightText: Copyright (c) 2021-2025 slowtec GmbH +# SPDX-License-Identifier: CC0-1.0 + +# yaml-language-server: $schema=https://json.schemastore.org/github-workflow + +name: build-and-test + +permissions: + contents: read + +on: + push: + branches: + - main + pull_request: + branches: + - main + workflow_dispatch: + +env: + CARGO_TERM_COLOR: always + +jobs: + steps: + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt,clippy + targets: wasm32-unknown-unknown + + - name: Checkout code + uses: actions/checkout@v5 + + - name: Generate Cargo.lock + run: cargo generate-lockfile + + - name: Run tests + run: cargo test --locked --target wasm32-unknown-unknown -- --nocapture --quiet + + - name: Build documentation + run: cargo doc --locked --target wasm32-unknown-unknown + + - name: Build release + run: cargo build --locked --target wasm32-unknown-unknown --profile release diff --git a/.github/workflows/dependency-audit.yaml b/.github/workflows/dependency-audit.yaml new file mode 100644 index 0000000..b863c8c --- /dev/null +++ b/.github/workflows/dependency-audit.yaml @@ -0,0 +1,35 @@ +# SPDX-FileCopyrightText: Copyright (c) 2021-2025 slowtec GmbH +# SPDX-License-Identifier: CC0-1.0 + +# yaml-language-server: $schema=https://json.schemastore.org/github-workflow + +name: dependency-audit + +permissions: + contents: read + +on: + push: + paths: + - "**/Cargo.toml" + schedule: + # Weekly, i.e. on Sunday at 04:37 UTC + - cron: "37 4 * * 0" + workflow_dispatch: + +jobs: + run: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v5 + + - name: Generate Cargo.lock + run: cargo generate-lockfile + + - uses: EmbarkStudios/cargo-deny-action@v1 + with: + command: check + arguments: >- + --all-features + --locked