Verify
Run every check that CI runs, in order. This is a local mirror of .github/workflows/svc.yml.
Workflow
1. Lint (golangci-lint v1.63, gosec enabled)
bash
golangci-lint run
This uses .golangci.yml which enables gosec with a 2-minute timeout. All default linters are also active.
2. Download Substrate Plugin
bash
# Only needed if not already present make plugin
This downloads the substratehcp binary from download.luthersystemsapp.com for both linux and darwin. Required for oracle package tests.
3. Run Full Test Suite
bash
# Matches CI exactly: make citest = plugin + go-test go test -timeout 10m ./...
4. Build Check
bash
go build ./...
Quick Verify (Skip Plugin)
If you haven't changed anything in oracle/, you can skip the plugin download:
bash
golangci-lint run && go test -timeout 10m ./... && go build ./...
Key Reminders
- •CI runs on
ubuntu-22.04with Go 1.23 — ensure compatibility - •CI cleans the module cache before linting (
go clean -modcache) — if you hit cache issues locally, do the same - •The
SUBSTRATEHCP_FILEenv var must point to the plugin binary for oracle tests - •CI wraps
make citestinscript -q -e -c(pseudo-TTY) — this shouldn't affect local runs
Checklist
- • golangci-lint passes (0 issues)
- • All tests pass with 10m timeout
- • Build succeeds
- • No uncommitted generated file changes