generated from eblume/project-template
All checks were successful
Build / validate (pull_request) Successful in 21m0s
The Forgejo k8s job image is a thin Alpine + Dagger orchestrator (no native Rust/Neovim toolchain, no prek) with a DinD sidecar — so CI was failing on step 1 (`prek: command not found`) on every run, and a native cargo hook wouldn't work there either. - build.yaml now runs `dagger call check` (cargo fmt/clippy/test on rust:1-bookworm) + `dagger call test-nvim` (build hephd + headless e2e). - New Dagger `check` function; CARGO_BUILD_JOBS capped on both functions so parallel rustc on heavy crates doesn't OOM the build engine; cargo registry + target caches shared across runs. - prek is intentionally not run in CI — it runs locally via git hooks. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
37 lines
1.1 KiB
YAML
37 lines
1.1 KiB
YAML
# Build Workflow
|
|
#
|
|
# CI validation, run entirely through Dagger. The Forgejo job image is a thin
|
|
# Alpine + Dagger orchestrator (no Rust/Neovim toolchain), so all build and test
|
|
# work happens in Dagger containers (.dagger/src/hephaestus_ci/main.py):
|
|
#
|
|
# - check — cargo fmt --check, clippy -D warnings, cargo test --all
|
|
# - test-nvim — build hephd + run the headless heph.nvim e2e suite
|
|
#
|
|
# prek is intentionally not run here — it runs locally via git hooks
|
|
# (`prek install`). Dagger uses the DinD sidecar; both functions share cargo
|
|
# cache volumes across runs.
|
|
|
|
name: Build
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
validate:
|
|
runs-on: k8s
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
|
|
- name: Rust checks (Dagger)
|
|
run: |
|
|
echo "Running cargo fmt/clippy/test via Dagger..."
|
|
dagger call check --src=.
|
|
|
|
- name: heph.nvim e2e (Dagger)
|
|
run: |
|
|
echo "Running headless heph.nvim e2e suite via Dagger..."
|
|
dagger call test-nvim --src=.
|