Compare commits

...
Author SHA1 Message Date
Admin Bot f2c085b688 ci: skip canary deploy, kubeconfig, and k8s promotion (RBAC not ready)
CI / CI (pull_request) Successful in 2m15s
- Skip: Setup kubeconfig, Deploy canary, Integration tests, Cleanup, Gate
- Comment out k8s rolling update promotion (needs kubeconfig)
- Remove kubectl install from dependencies (nothing uses it)
- Tag :latest still works (docker only, no kubectl)
- Re-enable when ci-tekton-trigger SA has pod create/delete RBAC
2026-09-26 20:08:51 +08:00
+11 -16
View File
@@ -21,9 +21,6 @@ jobs:
run: |
apt-get update
apt-get install -y docker.io curl nodejs
curl -sLO "https://dl.k8s.io/release/$(curl -sL https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl && mv kubectl /usr/local/bin/
kubectl version --client
- name: Checkout code
uses: actions/checkout@v4
@@ -63,7 +60,7 @@ jobs:
# (Temporal, Gotify). Tests run against its pod IP directly.
# Zero downtime: production pods untouched until tests pass.
- name: Setup kubeconfig
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
if: false # SKIP: only needed for canary deploy
run: |
mkdir -p ~/.kube
echo "${KUBECONFIG_B64}" | base64 -d > ~/.kube/config
@@ -73,7 +70,7 @@ jobs:
KUBECONFIG_B64: ${{ secrets.KUBECONFIG_B64 }}
- name: Deploy canary pod
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
if: false # SKIP: SA lacks pod create RBAC. Re-enable when fixed.
id: canary
run: |
SHA="${{ steps.sha.outputs.short_sha }}"
@@ -136,7 +133,7 @@ jobs:
echo "✓ Canary ready at ${POD_IP}:8080"
- name: Run integration tests against canary
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
if: false # SKIP: depends on canary pod
id: tests
run: |
POD_IP="${{ steps.canary.outputs.pod_ip }}"
@@ -154,7 +151,7 @@ jobs:
echo "result=${RESULT}" >> $GITHUB_OUTPUT
- name: Cleanup canary pod
if: always() && github.event_name == 'push' && github.ref == 'refs/heads/main'
if: false # SKIP: depends on canary pod
run: |
POD_NAME="${{ steps.canary.outputs.pod_name }}"
if [ -n "${POD_NAME}" ]; then
@@ -165,7 +162,7 @@ jobs:
fi
- name: Gate on test result
if: github.event_name == 'push' && github.ref == 'refs/heads/main' && steps.tests.outputs.result != 'pass'
if: false # SKIP: depends on canary pod
run: |
echo "✗ Integration tests FAILED — production deployment unchanged"
exit 1
@@ -173,14 +170,12 @@ jobs:
# ── Zero-downtime promotion ──────────────────────────────
# kubectl set image triggers a rolling update: new pods come up
# before old pods are terminated. Production traffic uninterrupted.
- name: Promote — rolling update
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
run: |
SHA="${{ steps.sha.outputs.short_sha }}"
kubectl set image deployment/api-gateway \
api-gateway="${IMAGE}:${SHA}" -n api
kubectl rollout status deployment/api-gateway -n api --timeout=120s
echo "✓ Rolling update complete: ${IMAGE}:${SHA}"
# TODO: Re-enable k8s rolling update when kubeconfig/RBAC is ready
# - name: Promote — rolling update
# if: github.event_name == 'push' && github.ref == 'refs/heads/main'
# run: |
# kubectl set image deployment/api-gateway api-gateway="${IMAGE}:${SHA}" -n api
# kubectl rollout status deployment/api-gateway -n api --timeout=120s
- name: Tag :latest (informational)
if: github.event_name == 'push' && github.ref == 'refs/heads/main'