GitHub Actions CI/CD Guide
Overview
GitHub Actions runs automated workflows for testing and publishing. Superloom uses a single unified workflow (ci-helper-modules.yml) that:
- Runs tests on every push and pull request
- Publishes helper modules to GitHub Packages only when their
package.jsonversion has changed (gated behind a successful test run)
This replaces the earlier two-workflow setup (test.yml + publish-helper-module.yml), which caused duplicate runs per commit and 409 already-published failures whenever a push didn't include a version bump.
Repository Configuration
Secrets
- Repository → Settings → Secrets and Variables → Actions
GITHUB_TOKENis automatically available (no setup needed)- Add additional secrets as needed by deployment workflows
Workflow Permissions
- Repository → Settings → Actions → General → Workflow permissions
- Select: Read and write permissions
- Check: Allow GitHub Actions to create and approve pull requests
Key Rules
NODE_AUTH_TOKENmust be set at job level, not step level- Publishing uses
GITHUB_TOKEN(not a personal access token) - Test jobs run on
pushtomainand onpull_requestevents - Publish jobs run only on
pushtomainAND only when the module'spackage.jsonversion changed betweenHEAD~1andHEAD
Workflow Location
All workflows live in .github/workflows/:
.github/
workflows/
ci-helper-modules.yml # Unified test + publish pipelineJobs inside ci-helper-modules.yml:
detect- scan changed modules and version bumpstest-offline- matrix of offline modulestest-dynamodb- DynamoDB module with Docker service containerpublish-offline- conditional on version bump + passing testspublish-dynamodb- conditional on version bump + passing tests
See docs/dev/cicd-publishing.md for the full publishing guide.