Files
cnb/.cnb/template.yml
xiongxiao a77e178431 update
2026-01-13 16:12:35 +08:00

87 lines
2.8 KiB
YAML

.common_sync_to_gitea_template: &common_sync_to_gitea_template
services:
- docker
imports:
- https://cnb.cool/kevisual/env/-/blob/main/.env.development
# env:
# TO_REPO: kevisual/cnb
# TO_URL: git.xiongxiao.me
stages:
- name: '显示 git remote'
script: git remote -v
- name: sync to gitea
image: tencentcom/git-sync
settings:
target_url: https://${TO_URL}/${TO_REPO}.git
auth_type: https
username: "oauth2"
password: ${GITEA_TOKEN}
git_user: "abearxiong"
git_email: "xiongxiao@xiongxiao.me"
sync_mode: rebase
branch: main
.common_sync_from_gitea_template: &common_sync_from_gitea_template
services:
- docker
imports:
- https://cnb.cool/kevisual/env/-/blob/main/.env.development
# env:
# TO_REPO: kevisual/cnb
# TO_URL: git.xiongxiao.me
stages:
- name: '添加 gitea的origin'
script: |
git remote remove gitea 2>/dev/null || true
git remote add gitea https://oauth2:${GITEA_TOKEN}@${TO_URL}/${TO_REPO}.git
- name: '同步gitea代码到当前仓库'
script: git pull gitea main
- name: '提交到原本的origin'
script: git push origin main
# main:
# web_trigger_sync_to_gitea:
# - <<: *common_sync_to_gitea_template
# web_trigger_sync_from_gitea:
# - <<: *common_sync_from_gitea_template
# api_trigger_sync_to_gitea:
# - <<: *common_sync_to_gitea_template
# api_trigger_sync_from_gitea:
# - <<: *common_sync_from_gitea_template
.kubectl_deploy_template: &kubectl_deploy_template
services:
- docker
docker:
image: docker.cnb.cool/kevisual/dev-env:latest
imports:
- https://cnb.cool/kevisual/env/-/blob/main/.env.development
stages:
- name: '部署k8s模块'
script: |
echo "${KUBECONFIG_DATA}" | base64 -d > ~/.kube/config
chmod 600 ~/.kube/config # 安全性建议
export NAMESPACE=${KUBE_NAMESPACE:-default}
export DEPLOYMENT_NAME=${KUBE_DEPLOYMENT:? "KUBE_DEPLOYMENT 未设置或者没有默认值"}
kubectl rollout restart deployment/${DEPLOYMENT_NAME} -n ${NAMESPACE}
.build_images_app_template: &build_images_app_template
services:
- docker
docker:
image: docker.cnb.cool/kevisual/dev-env:latest
stages:
- name: 检查环境是否需要打包
script:
- |
if [ -f "package.json" ]; then
echo "📦 开始前端构建流程"
npm install -g pnpm || exit 1
pnpm install
pnpm run build || echo "⚠️ 构建失败或无 build script"
else
echo "🔍 非前端项目,跳过打包"
fi
- name: Docker build
script: docker build -t ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest .
- name: Docker push
script: docker push ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest