CI/CD pipeline for demo.cubeos.app.
Builds the CubeOS dashboard with VITE_DEMO_MODE=true and deploys it to the DMZ
via AWX. Demo mode source code lives in the
dashboard repo.
- Build — Clones the dashboard repo, runs
npm run buildwithVITE_DEMO_MODE=true - Package — Builds a Docker image from the nginx base + built assets, pushes to
ghcr.io/cubeos-app/demo:latest - Deploy — Triggers AWX job template 42 to pull and restart on both DMZ nodes
Any push to this repo's main branch runs the full pipeline.
The dashboard repo can trigger a demo rebuild when demo-related code changes. To set this up:
- Create a pipeline trigger token in this repo: Settings > CI/CD > Pipeline trigger tokens > Add trigger
- Add the token as
DEMO_TRIGGER_TOKENCI variable in the dashboard repo - Add this to the dashboard's
.gitlab-ci.yml:trigger:demo: stage: deploy trigger: project: products/cubeos/demo branch: main rules: - if: $CI_COMMIT_BRANCH == "main" changes: - src/composables/useDemoMode.js - src/mock/**/*
Configure a daily schedule in CI/CD > Schedules to keep the demo in sync with the latest dashboard changes, even without explicit triggers.
| Variable | Level | Purpose |
|---|---|---|
GHCR_USER |
Group | GitHub Container Registry username |
GHCR_TOKEN |
Group | GitHub Container Registry token |
AWX_HOST |
Group | AWX API base URL |
AWX_TOKEN |
Group | AWX API bearer token |
AWX_DEMO_TEMPLATE_ID |
Project | AWX job template ID (42) |