CoreCI's buildIsolatedEnv does NOT forward GOROOT, GOPATH, GOCACHE,
GOMODCACHE (they're in the systemVars deny-list in pass_through.go).
The shell-isolated executor's env only has PATH, HOME, LANG, TMPDIR,
TERM, CI + CORECI_* + CI_* + job vars. Without GOMODCACHE/GOCACHE, Go
commands fail (can't find module/build cache). Fix: re-derive them from
the go binary on PATH via 'go env GOROOT' etc.
---ci---
project: orca
phase: 1
milestone: v0.16
status: execute
---/ci---
CoreCI's ValidateShellCommand (internal/runner/validate.go) rejects
invoke: strings containing &|;`><$() — security measure to prevent
shell injection. The previous .coreci.yml jobs had inline invoke:
commands with || redirects and $(date) substitution, causing:
job "gitleaks" failed: shell command contains forbidden metacharacters
Fix: all complex logic moved to scripts/ci-run.sh. Each .coreci.yml job
uses invoke: "sh scripts/ci-run.sh <job-name>" — no metacharacters in
the invoke: string. The script itself can use any shell features
internally (CoreCI only validates the invoke: field, not what the script
does).
---ci---
project: orca
phase: 1
milestone: v0.16
status: execute
---/ci---