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.ymlworkflow generatesbuild_tagfrom 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:
- master → idk-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/deploywith Argo server/token and thebuild_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}(defaulthttps://argo.swapps.live) - You can verify an app’s health and sync status from the UI after CI or manual sync.