Skip to content

ci: add PR validation, smoke tests, and workflow security hardening#30

Merged
gustavovalverde merged 10 commits intodevfrom
ci/add-pr-validation-and-smoke-tests
Apr 7, 2026
Merged

ci: add PR validation, smoke tests, and workflow security hardening#30
gustavovalverde merged 10 commits intodevfrom
ci/add-pr-validation-and-smoke-tests

Conversation

@gustavovalverde
Copy link
Copy Markdown
Member

@gustavovalverde gustavovalverde commented Apr 7, 2026

Summary

  • Add CI workflow (ci.yaml): validates compose configs and runs service startup smoke tests on every PR
  • Add integration test (integration-test.yaml): spins up full regtest stack on dev push
  • Add zizmor (zizmor.yaml): GitHub Actions security scanning with SARIF upload
  • Add Dependabot for monthly GitHub Actions updates
  • Pin all actions to commit SHAs and update to latest versions
  • Harden workflows: persist-credentials: false, permissions: {}

Context

Issue #28 revealed that a missing start subcommand in the zaino compose command caused the service to crash on startup — with no CI to catch it. The smoke test added here (zainod start --help) would have caught that directly.

- Add CI workflow: compose config validation + service startup smoke tests on every PR
- Add integration test workflow: regtest stack end-to-end validation on dev push
- Add zizmor workflow: GitHub Actions security scanning (SARIF → Security tab)
- Add Dependabot for GitHub Actions (monthly, with cooldown)
- Pin all actions to commit SHAs and update to latest versions
- Harden all workflows: persist-credentials: false, permissions: {}
- Add CI improvement plan tracking document

The smoke tests would have directly caught #28 (missing zaino start subcommand).
The previous SHA was an annotated tag object, not a reachable commit.
Zizmor flagged this as impostor-commit and ref-mismatch.
- Start Zebra in regtest, verify RPC serves getblockchaininfo
- Mine block 1 (required for Zaino initial sync)
- Start Zaino, verify gRPC port binds and JSON-RPC proxy works
- Add failure log collection and cleanup steps
- Fix platform for cross-arch image pulls
- chmod 644 on generated TLS certs (Zaino's setpriv drops to uid 1000)
- Detect Zaino container crash before checking ports
- Wait for JSON-RPC port (8237) instead of gRPC (8137) to avoid
  race between port bind and TLS initialization
…lication

- Remove validate-compose job (redundant — smoke-test catches same errors)
- Remove integration-test.yaml (duplicated smoke-test with less robustness)
- Remove ci-improvement-plan.md (all items implemented, stale)
- Inline compose validation as first step of smoke-test
- Fix container name: use compose-aware ps instead of hardcoded z3_zaino
- Remove unnecessary comments
@gustavovalverde gustavovalverde merged commit 141ec4f into dev Apr 7, 2026
3 checks passed
@gustavovalverde gustavovalverde deleted the ci/add-pr-validation-and-smoke-tests branch April 7, 2026 16:07
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.

2 participants