Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 40 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,21 @@ name: CI

on:
push:
branches: [main]
branches: [main, "agent/**"]
pull_request:

permissions:
contents: read

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
debian-trixie:
name: Debian 13 / stable Rust
runs-on: ubuntu-latest
container: debian:trixie-slim
name: Debian 13 / Rust 1.97.1
runs-on: ubuntu-24.04
container: debian:trixie-slim@sha256:020c0d20b9880058cbe785a9db107156c3c75c2ac944a6aa7ab59f2add76a7bd

steps:
- name: Install system dependencies
Expand All @@ -21,29 +25,49 @@ jobs:
apt-get install --yes --no-install-recommends \
build-essential \
ca-certificates \
curl \
git \
libudev-dev \
pkg-config
pkg-config \
rustup

- name: Check out repository
uses: actions/checkout@v4
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683

- name: Install Rust
shell: bash
- name: Install pinned Rust toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
| sh -s -- -y --profile minimal --default-toolchain stable
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
rustup toolchain install 1.97.1 \
--profile minimal \
--component rustfmt \
--component clippy \
--component llvm-tools-preview
rustup default 1.97.1
rustc --version
cargo --version

- name: Install Rust components
run: rustup component add clippy rustfmt
- name: Validate lockfile and metadata
run: cargo metadata --locked --format-version 1 --no-deps >/dev/null

- name: Check formatting
run: cargo fmt --all -- --check

- name: Run Clippy
run: cargo clippy --all-targets --all-features
run: cargo clippy --workspace --all-targets --all-features --locked -- -D warnings

- name: Run tests
run: cargo test --all-features
run: cargo test --workspace --all-features --locked

- name: Check architecture boundaries
run: sh scripts/check-architecture.sh

- name: Create tested source archive
if: always()
run: tar --exclude=.git --exclude=target -czf /tmp/vfd-lantern-source.tar.gz .

- name: Upload tested source archive
if: always()
uses: actions/upload-artifact@v4
with:
name: issues-1-9-tested-source
path: /tmp/vfd-lantern-source.tar.gz
if-no-files-found: error
retention-days: 1
25 changes: 25 additions & 0 deletions .github/workflows/export-source.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Export validation source

on:
push:
branches: [agent/issues-1-9-validation]

permissions:
contents: read

jobs:
export:
runs-on: ubuntu-24.04
steps:
- name: Check out exact validation commit
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
- name: Create source archive
run: |
git ls-files -z | tar --null -T - -czf /tmp/vfd-lantern-source.tar.gz
- name: Upload source archive
uses: actions/upload-artifact@v4
with:
name: issues-1-9-source
path: /tmp/vfd-lantern-source.tar.gz
if-no-files-found: error
retention-days: 1
Loading
Loading