Commit Graph

8 Commits

Author SHA1 Message Date
Martin Maslyankov
b84cb78ca4 fix(deploy): fix silent success on failed deploys (CON-654)
- Fix boolean type coercion: use !inputs.use-env-tag instead of == false
- Fail loudly (exit 1) when deploy produces no changes instead of exit 0
- Add debug logging: image name, tag, deploy paths, current/updated images
- Validate yq actually matched and updated container images before committing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 15:38:10 +03:00
Martin Maslyankov
0444056a38 feat: add environment-based image tags (prod/staging/dev) to CI templates
build-push.yaml now pushes branch-conditional env tags alongside SHA tags:
- main/master → prod, staging → staging, dev → dev
- Optional version input for pinned dev-v{N} tags
- New env-tag output for downstream consumers

deploy-k8s.yaml adds use-env-tag option:
- When true, skips SHA-based manifest updates and instead bumps a deploy
  annotation so ArgoCD rolls pods with the mutable tag
- Backward compatible: existing services using SHA tags are unaffected

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 20:31:49 +03:00
Martin Maslyankov
432f2c1e8c fix(deploy): use single-line commit message to avoid expression truncation
Gitea Actions expression evaluator truncates multiline strings in
run blocks at blank lines. Using a simple single-line commit message.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 06:28:59 +03:00
Martin Maslyankov
7203c9a8f7 fix(deploy): fix multiline commit message truncation in deploy-k8s.yaml
Gitea Actions expression evaluator truncates multiline strings in
git commit -m "...", causing EOF while looking for matching quote.
Build the commit message in a variable instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 06:23:34 +03:00
Martin Maslyankov
d61031bc82 fix(deploy): add shell: bash for bash-specific syntax in deploy-k8s.yaml
${SHA:0:7} substring expansion is bash-specific and fails in sh.
Adding explicit shell: bash to both steps, matching the fix already
applied to build-push.yaml.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 06:12:02 +03:00
Martin Maslyankov
6e6511e39c fix: detect architecture for yq download in deploy template
The runner is ARM64 but yq was hardcoded to download amd64 binary.
Auto-detect architecture to download the correct binary.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 06:02:42 +03:00
Platform Engineer
290b9a9eb9 harden: P1/P2 improvements from CON-571 review
P1 — deploy-k8s.yaml:
- Add set -euo pipefail to all run blocks
- Replace sed-based image tag patching with yq for YAML-safe updates
- Add source commit SHA and CI run link to deploy commit messages
- Install yq v4.44.1 as prerequisite step

P1 — build-push.yaml:
- Add runner input parameter for future ARM64 self-hosted runners
  (default: ubuntu-latest with QEMU emulation)

P2 — test-python.yaml:
- Add pyproject.toml support (pip install -e) before requirements.txt fallback

P2 — build-push.yaml:
- Pin catthehacker/ubuntu container image to act-22.04 (was act-latest)

Ref: CON-578
2026-03-31 19:59:09 +03:00
Platform Engineer
a620868998 feat: add reusable CI/CD pipeline templates
Reusable Gitea Actions workflows for lint, test, build, and deploy:
- lint-python, lint-node, lint-rust
- test-python, test-node, test-rust
- build-push (Docker build + push to Gitea registry)
- deploy-k8s (GitOps image tag update in cluster repo)

Plus example caller workflows for python-fullstack, rust-service,
and node-frontend stacks. Branch refs aligned to staging per CON-570 standards.
2026-03-31 19:55:17 +03:00