Skip to content

feat(ci): GitHub Actions workflow (#28) - #72

Merged
obchain merged 3 commits into
mainfrom
feat/28-ci-workflow
May 27, 2026
Merged

obchain merged 3 commits into
mainfrom
feat/28-ci-workflow

Conversation

@obchain

@obchain obchain commented May 27, 2026 •

Copy link
Copy Markdown
Owner

updated

obchain added 3 commits May 27, 2026 15:41
Four parallel jobs, ubuntu-latest, no deploy step:

rust:     fmt --check, clippy -D warnings, cargo test on the workspace
go:       go vet, go test, go build (smoke catches the binary)
frontend: pnpm lint, typecheck, build
e2e:      scripts/e2e-smoke.sh — needs the three above so the integration
          job only runs once unit checks are green

Triggers on push to main and on every pull_request. concurrency group
cancels superseded runs on the same ref. RUSTFLAGS=-D warnings keeps
warning regressions from sneaking in via test-only targets.

Caching:
  - Swatinem/rust-cache for the workspace (shared between rust + e2e
    under separate keys so debug + release builds don't thrash each
    other)
  - actions/setup-go built-in module cache
  - actions/setup-node + pnpm store via pnpm/action-setup
  - actions/setup-python for the WS verifier's websockets lib

e2e bumps ENGINE_WAIT_S to 360 s and WS_TIMEOUT_S to 120 s — runners
are CPU-modest and cold-start the Deribit instrument enumeration noticeably
slower than the dev box. Logs from /tmp/volx-e2e-* upload as an artifact
on failure so a regression bisects without re-running the workflow.

Deleted the empty deploy.yml scaffold; M3 will reintroduce deployment
when public-launch direction is settled.
The first CI run failed with:

  rustc 1.85.1 is not supported by the following packages:
    clickhouse@0.15.0 requires rustc 1.89.0
    clickhouse-macros@0.3.0 requires rustc 1.89.0
    clickhouse-types@0.1.2 requires rustc 1.89.0

Cargo.toml claimed `rust-version = "1.85"` but the clickhouse dep family
that landed with the storage layer (#50) pulled in transitive crates
whose MSRV is 1.89. Bump the workspace MSRV to match dep reality and
let CI track current stable instead of pinning a specific version —
otherwise every dep MSRV bump requires a workflow edit.
CI under -D warnings failed on clippy::collapsible_if at the two
sink::shutdown paths. Edition 2024 + rustc 1.89+ let-chain syntax
collapses the pair into a single `&&`-joined condition. Pre-existing
local clippy passed because RUSTFLAGS was not set; CI now exercises
the strict warning posture this PR introduces.
@obchain
obchain merged commit e7ce0e2 into main May 27, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant