Skip to content

CI/CD

OpenFoundry uses several focused GitHub Actions workflows instead of one monolithic pipeline. That keeps review scopes narrow and allows domain-specific checks to run only when relevant files change.

Workflow Breakdown

WorkflowTrigger FocusMain Output
ci.ymlRust crates, proto, smoke, toolingWorkspace correctness and runtime smoke confidence
ci-frontend.ymlapps/web and root Node configLinted, typed, tested, buildable frontend
proto-check.ymlproto/, generated artifacts, SDKsContract drift detection
helm-check.ymlHelm chart filesValid rendered Kubernetes manifests
terraform-check.ymlTerraform filesFormatted and validated infra assets
sdk-smoke.ymlSDK foldersCompilable generated SDKs
security-audit.ymlschedule and Cargo.lockDependency vulnerability awareness
docker-publish.ymlmain and tagsPublished container images
release.ymlv* tagsGitHub releases with changelog
deploy-docs.ymldocs/** and manual dispatchPublished VitePress site

Docs Website Pipeline

The documentation website follows the same isolated pattern used by the reference OxiCloud repository:

  1. checkout the repo
  2. install docs-only Node dependencies inside docs/ with the lockfile
  3. build VitePress
  4. upload docs/.vitepress/dist
  5. deploy to GitHub Pages

Workflow File

The workflow lives at .github/workflows/deploy-docs.yml.

Trigger Policy

The docs deployment runs on:

  • pushes to main that touch docs/**
  • manual workflow_dispatch

That keeps Pages publishing decoupled from the heavier application pipelines.

Required GitHub Setup

To make the pipeline effective, the repository should have:

  • GitHub Pages enabled
  • source set to GitHub Actions
  • default branch aligned with main

Contributor Guidance

  • If you change proto/, expect SDK and OpenAPI workflows to matter.
  • If you change infra packaging, check the Helm or Terraform pipelines, not only Rust tests.
  • If you change docs navigation or VitePress config, verify deploy-docs.yml assumptions still hold and run just docs-build.

Released under the Apache 2.0 License.