Skip to content

Deploy production through declarative config#19

Merged
ChiragAgg5k merged 3 commits into
mainfrom
fix/production-declarative-deploy
Jul 12, 2026
Merged

Deploy production through declarative config#19
ChiragAgg5k merged 3 commits into
mainfrom
fix/production-declarative-deploy

Conversation

@ChiragAgg5k

Copy link
Copy Markdown
Member

What does this PR do?

Moves production deployment from direct Helm writes to the same declarative appwrite-labs/assets-applications flow already used by staging.

The 1.0.6 release image built and pushed successfully, but direct Helm deployment conflicted with fields owned by Argo CD. This workflow now updates production/mcp-for-docs/default.yaml, allowing Argo CD to reconcile the release without competing field managers.

It also adds an explicit tag input for workflow dispatch so a previously built release such as 1.0.6 can be redeployed safely.

How was it tested?

  • actionlint .github/workflows/production.yml
  • git diff --check

Related issues

Follow-up to #18 and the failed production deployment job for release 1.0.6.

@greptile-apps

greptile-apps Bot commented Jul 12, 2026

Copy link
Copy Markdown

Greptile Summary

This PR replaces the direct Helm-based production deployment with the same declarative assets-applications ArgoCD flow already used by staging, and adds an explicit tag input for workflow_dispatch to safely redeploy previously-built images.

  • The build job is now gated with if: github.event_name == 'release', so manual dispatches skip the build entirely and only push an updated tag into production/mcp-for-docs/default.yaml for ArgoCD to reconcile.
  • The deploy job correctly uses if: always() && (needs.build.result == 'success' || needs.build.result == 'skipped') to cover both the release path (build ran) and the dispatch path (build skipped).
  • The commit message shell expansion uses native ${TAG}, ${ENVIRONMENT}, and ${PROJECT} variables rather than ${{ }} expression interpolation.

Confidence Score: 5/5

Safe to merge — the workflow correctly isolates the build step to release events only, and the deploy step handles both trigger paths cleanly.

The build job is gated to release events so manual redeploys skip it entirely. The deploy job condition covers both the release and dispatch paths. TAG resolution and the yq strenv(TAG) pattern are correct and safe.

No files require special attention.

Important Files Changed

Filename Overview
.github/workflows/production.yml Migrates production deployment from direct Helm to declarative ArgoCD reconciliation via assets-applications; adds workflow_dispatch with required tag input; gates the build job to release events only so manual redeploys skip the build step cleanly

Reviews (3): Last reviewed commit: "fix: avoid expression injection in deplo..." | Re-trigger Greptile

Comment thread .github/workflows/production.yml
Comment thread .github/workflows/production.yml
@ChiragAgg5k
ChiragAgg5k merged commit fbe7096 into main Jul 12, 2026
2 checks passed
@ChiragAgg5k
ChiragAgg5k deleted the fix/production-declarative-deploy branch July 12, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant