| .. | ||
| build-and-test.yml | ||
| close-needs-retest-timeout.yml | ||
| create-release.yml | ||
| deploy-demo-server.yml | ||
| eval-model-matrix.yml | ||
| helm-ci.yml | ||
| helm-pages.yml | ||
| issue-version-triage.yml | ||
| promote-floating-tags.yml | ||
| publish-docker.yml | ||
| publish-helm-chart.yml | ||
| README.md | ||
| release-dry-run.yml | ||
| test-e2e.yml | ||
| test-updates.yml | ||
| update-demo-server.yml | ||
| validate-release-assets.yml | ||
GitHub Actions Workflows
Update Demo Server
File: update-demo-server.yml
Updates the public demo server when the release pipeline dispatches a new stable release deployment, or when run manually.
Configuration Required
Add these secrets to your GitHub repository settings (Settings → Secrets and variables → Actions):
-
DEMO_SERVER_SSH_KEY
- The private SSH key for accessing the demo server
- Generate with:
cat ~/.ssh/id_ed25519(or your key file) - Should be the full private key including
-----BEGINand-----ENDlines
-
DEMO_SERVER_HOST
- The hostname or IP of the demo server
- Value:
174.138.72.137(or hostname if using DNS)
-
DEMO_SERVER_USER
- The SSH username for the demo server
- Value:
root(or the appropriate user with sudo access)
How It Works
- Trigger: Dispatched by the release pipeline after a stable release is published, or run manually from the Actions tab
- Filter: The release pipeline only dispatches this for stable releases
- Update: SSHs to demo server and runs the install script
- Verify: Checks that the new version is running and mock mode is active
- Cleanup: Removes SSH key from runner
Testing
To test without publishing a release:
- Go to
Actionstab in GitHub - Select
Update Demo Serverworkflow - Click
Run workflow(if manual trigger is enabled)
Benefits
- ✅ Demo server always showcases latest stable release
- ✅ Validates install script works on real server
- ✅ Removes manual step from release process
- ✅ Free to run (public repos get unlimited GitHub Actions minutes)
Helm CI
File: helm-ci.yml
Runs helm lint --strict and renders the chart with common configuration combinations on every pull request that touches Helm content (and on pushes to main and release/5.1). This prevents regressions before they land.
- Triggered by PRs/pushes touching
deploy/helm/**, docs, or the workflow itself - Uses Helm v3.15.2
- Renders both the default deployment and an agent-enabled configuration to catch template issues
Publish Helm Chart
File: publish-helm-chart.yml
Packages the Helm chart and pushes it to the GitHub Container Registry (OCI) when dispatched by the release pipeline, or manually via workflow dispatch. Also makes the packaged .tgz available as both an Actions artifact and a release asset. The same behaviour can be triggered locally via ./scripts/package-helm-chart.sh <version> [--push].
- Triggered by the release pipeline via workflow dispatch, or manually from the Actions tab
- Chart and app versions mirror the Pulse release tag (e.g.,
v4.24.0→4.24.0) - Publishes to
oci://ghcr.io/<owner>/pulse-chart - Requires no additional secrets—uses the built-in
GITHUB_TOKENwithpackages: writepermission