49 lines
1.6 KiB
YAML
49 lines
1.6 KiB
YAML
# push 到 main/master → 渲染密钥 → 写入 Consul → 重启相关 API
|
|
# 触发方式与 api/front 一致(不做 paths 过滤,避免「推了却不跑」)
|
|
name: Sync Consul Config
|
|
|
|
on:
|
|
push:
|
|
branches: [master, main]
|
|
paths:
|
|
- "idwms/**"
|
|
- "scripts/**"
|
|
- ".gitea/workflows/sync-consul.yml"
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
sync:
|
|
runs-on: k3s-host
|
|
steps:
|
|
- name: Checkout and sync
|
|
run: |
|
|
set -euxo pipefail
|
|
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
|
export NAMESPACE=prod
|
|
|
|
REPO="${{ gitea.repository }}"
|
|
REPO="${REPO:-${{ github.repository }}}"
|
|
SHA="${{ gitea.sha }}"
|
|
SHA="${SHA:-${{ github.sha }}}"
|
|
test -n "$REPO" && [[ "$REPO" == */* ]]
|
|
test -n "$SHA"
|
|
|
|
GITEA_HTTP="https://git.ideship.com"
|
|
WORK="/data/ci-build/config"
|
|
GITEA_USER="$(kubectl -n prod get secret kaniko-git -o jsonpath='{.data.GITEA_USER}' | base64 -d)"
|
|
GIT_TOKEN="$(kubectl -n prod get secret kaniko-git -o jsonpath='{.data.GIT_TOKEN}' | base64 -d)"
|
|
GITEA_USER="${GITEA_USER:-gitea}"
|
|
|
|
rm -rf "$WORK"
|
|
mkdir -p "$WORK"
|
|
cd "$WORK"
|
|
git init -q
|
|
git remote add origin "${GITEA_HTTP}/${REPO}.git"
|
|
AUTH_B64="$(printf '%s:%s' "$GITEA_USER" "$GIT_TOKEN" | base64 | tr -d '\n\r ')"
|
|
git -c http.extraHeader="Authorization: Basic ${AUTH_B64}" \
|
|
fetch --depth 1 --quiet --no-tags origin "$SHA"
|
|
git checkout --force --quiet FETCH_HEAD
|
|
|
|
chmod +x scripts/sync-to-consul.sh
|
|
./scripts/sync-to-consul.sh
|