68 lines
2.0 KiB
YAML
68 lines
2.0 KiB
YAML
# 复制到 tracks .gitea/workflows/deploy.yml
|
||
# push master → prod;push test → test
|
||
name: Build and Deploy
|
||
|
||
on:
|
||
push:
|
||
branches: [master, test]
|
||
|
||
env:
|
||
CSPROJ: src/TrackCenter.Api/TrackCenter.Api.csproj
|
||
IMAGE_NAME: track_api
|
||
DEPLOY_NAME: track-api
|
||
CONTAINER_NAME: track-api
|
||
TCR_REGISTRY: ccr.ccs.tencentyun.com
|
||
TCR_NAMESPACE: ideship
|
||
|
||
jobs:
|
||
deploy:
|
||
runs-on: k3s-host
|
||
steps:
|
||
- name: Build and deploy
|
||
run: |
|
||
set -euxo pipefail
|
||
REF="${{ gitea.ref_name }}"
|
||
case "$REF" in
|
||
test) TARGET=test ;;
|
||
master) TARGET=prod ;;
|
||
*) echo "unsupported branch: $REF"; exit 1 ;;
|
||
esac
|
||
|
||
SHA="${{ gitea.sha }}"
|
||
REPO="${{ gitea.repository }}"
|
||
test -n "$REPO" && [[ "$REPO" == */* ]]
|
||
|
||
case "$TARGET" in
|
||
test) TAG="test-${SHA}" ;;
|
||
*) TAG="${SHA}" ;;
|
||
esac
|
||
|
||
IMG="${{ env.TCR_REGISTRY }}/${{ env.TCR_NAMESPACE }}/${{ env.IMAGE_NAME }}:${TAG}"
|
||
echo "TARGET=$TARGET REF=$REF REPO=$REPO TAG=$TAG host=$(hostname)"
|
||
|
||
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
||
unset NAMESPACE
|
||
cd /data/k3s
|
||
./scripts/ci-publish-container.sh "$REPO" "${{ env.CSPROJ }}" \
|
||
"${{ env.IMAGE_NAME }}" "$TAG" "$SHA"
|
||
|
||
case "$TARGET" in
|
||
test)
|
||
export KUBECONFIG=/etc/rancher/k3s/k3s-test.yaml
|
||
export NAMESPACE=test
|
||
export MANIFEST_ROOT=/data/k3s-test
|
||
;;
|
||
*)
|
||
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
|
||
export NAMESPACE=prod
|
||
export MANIFEST_ROOT=/data/k3s
|
||
;;
|
||
esac
|
||
if [[ ! -f "$KUBECONFIG" ]]; then
|
||
echo "FAIL: missing KUBECONFIG=$KUBECONFIG host=$(hostname) uid=$(id -u)"
|
||
ls -la /etc/rancher/k3s/ /root/.kube/ 2>/dev/null || true
|
||
exit 1
|
||
fi
|
||
./scripts/ci-deploy-api.sh "${{ env.DEPLOY_NAME }}" \
|
||
"${{ env.CONTAINER_NAME }}" "$IMG"
|