Skip to content

ci: standardize workflows and chart patterns to match org playbook - #17

Merged
kphunter merged 1 commit into
mainfrom
devin/1779655302-standardize-patterns
May 24, 2026
Merged

ci: standardize workflows and chart patterns to match org playbook#17
kphunter merged 1 commit into
mainfrom
devin/1779655302-standardize-patterns

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Summary

Standardizes CI/CD workflows, Helm chart templates, Dockerfile, and supporting config to match the bcit-tlu org playbook patterns, using qcon-api as the gold-standard reference.

Changes:

  1. Deleted .github/workflows/build-and-push-app.yaml.inactive
  2. Created AGENTS.md — setup commands, code style, project structure, CI/CD, and deployment info following hriv structure
  3. ci.yaml — helm push error guard changed from || true + grep to || { echo; exit 1; } with tolerant digest parse; shell-safe env: blocks for login steps; reduced comment verbosity
  4. helm-publish.yaml — same helm push error guard fix; added FORCE_JAVASCRIPT_ACTIONS_TO_NODE24; shell-safe env: blocks; dynamic CHART_NAME via yq; sign step uses env vars instead of inline expressions
  5. release-retag.yaml — reduced multi-line block comments to concise single-liners; kept existing TAGS variable name
  6. release-please.yaml — added FORCE_JAVASCRIPT_ACTIONS_TO_NODE24; reduced verbose comments to single-liners
  7. pr-title-lint.yaml — added FORCE_JAVASCRIPT_ACTIONS_TO_NODE24; condensed failure explainer comment to match qcon-api
  8. Helm deployment.yaml — affinity check changed from {{- if $aff }} to {{- if ne (toJson $aff) "{}" }}
  9. Dockerfile## comment markers changed to #
  10. charts/Chart.yaml — added # x-release-please-version annotation to version: line
  11. release-please-config.json — added package-lock.json entries ($.version and $.packages[''].version) to extra-files
  12. values.yaml — reduced verbose zoneAntiAffinity comment block, kept warning

Not changed: app code, build logic, CI triggers/conditions, release-please version tracking mechanism, package.json in extra-files, deployment behavior, job dependencies.

Review & Testing Checklist for Human

  • Verify helm push error guard pattern in ci.yaml and helm-publish.yaml matches qcon-api exactly (|| { echo "${PUSH_OUT}"; exit 1; })
  • Confirm FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true is present in all 5 workflow files
  • Verify actions/checkout@v6 is used everywhere (was already v6, confirmed preserved)
  • Check that release-please-config.json extra-files include both package-lock.json jsonpath entries
  • Confirm Chart.yaml version: line now has # x-release-please-version annotation
  • Verify deployment.yaml affinity guard renders correctly: helm template test charts/ should produce valid YAML with no empty affinity: block

Notes

  • Helm lint and kubeconform validation both pass locally
  • Binary asset files (.psd, .docx, .png) showed CRLF→LF working-tree changes from .gitattributes — these were intentionally excluded from this commit
  • The TAGS variable name in release-retag.yaml was kept as-is per instructions (qcon-api uses TAG_ARGS)

Link to Devin session: https://app.devin.ai/sessions/b843505ded5e4091a30155550bc6f44f
Requested by: @kphunter

Co-Authored-By: kyle_hunter@bcit.ca <kyle_hunter@bcit.ca>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@kphunter
kphunter merged commit 2bfface into main May 24, 2026
4 checks passed
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