Deployment

Deployments use Argo CD. The CI pipeline builds a container image, tags it using the computed build_tag, and the deploy action updates and syncs the corresponding Argo application.

Image build/tag

  • The build.yml workflow generates build_tag from the branch or release tag
  • Images are pushed to GHCR and referenced by tag

App selection (naming)

The deploy logic maps build_tag to an Argo application name. Typical rules used in the repo: - masteridk-dev - Semantic version tags (e.g., 3.17.0) → idk-prod - Known names (main, dev, develop, staging, production, release) → idk-<name> - Fallback: idk-<build_tag>

Live deploy (CI)

  • After a successful build, the Deploy job runs ./.github/actions/deploy with Argo server/token and the build_tag
  • Argo updates the app’s image tag and synchronizes the resources

Diagram

flowchart TD A[Build image] --> B[Build tag] B --> C[Map to app] C --> D[Update image tag] D --> E[Argo sync] E --> F{Healthy?} F -->|Yes| G[Done] F -->|No| H[Investigate]

Manual deploy/sync

Use sync-argocd.yml when you need to: - Preview changes (dry run) without applying - Re-sync the app without building a new image - Force pod restarts after a sync

Inputs: branch, dry_run, force_recreate. See CI/CD page for details.

Environments

  • Argo CD UI: ${ARGOCD_SERVER} (default https://argo.swapps.live)
  • You can verify an app’s health and sync status from the UI after CI or manual sync.