Files
Pulse/.github/workflows
rcourtman 3c134ff4b8 fix(ci): pass explicit version to demo server update
Previously the workflow ran install.sh without --version, which caused it
to download the latest stable release instead of the target release tag.

This was causing the demo server to downgrade from RC versions to stable
when triggered via workflow_dispatch.
2025-12-15 16:11:49 +00:00
..

GitHub Actions Workflows

Update Demo Server

File: update-demo-server.yml

Automatically updates the public demo server when a new stable release is published.

Configuration Required

Add these secrets to your GitHub repository settings (SettingsSecrets and variablesActions):

  1. 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 -----BEGIN and -----END lines
  2. DEMO_SERVER_HOST

    • The hostname or IP of the demo server
    • Value: 174.138.72.137 (or hostname if using DNS)
  3. DEMO_SERVER_USER

    • The SSH username for the demo server
    • Value: root (or the appropriate user with sudo access)

How It Works

  1. Trigger: Runs automatically when a GitHub release is published
  2. Filter: Only runs for stable releases (skips RC/pre-releases)
  3. Update: SSHs to demo server and runs the install script
  4. Verify: Checks that the new version is running and mock mode is active
  5. Cleanup: Removes SSH key from runner

Testing

To test without publishing a release:

  1. Go to Actions tab in GitHub
  2. Select Update Demo Server workflow
  3. 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). 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) whenever a GitHub Release is published. 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 automatically on release: published, or manually via workflow dispatch (requires chart_version input)
  • Chart and app versions mirror the Pulse release tag (e.g., v4.24.04.24.0)
  • Publishes to oci://ghcr.io/<owner>/pulse-chart
  • Requires no additional secrets—uses the built-in GITHUB_TOKEN with packages: write permission