name: mirror-to-gitee # 把本仓同步到 Gitee 企业仓 snowgoat/<同名仓库>。 # 触发:main 分支推送、v* tag 推送,也可手动。 on: push: branches: - main tags: - 'v*' workflow_dispatch: concurrency: group: mirror-${{ github.ref }} cancel-in-progress: true jobs: mirror: runs-on: host steps: - name: 同步到 Gitee env: SRC_TOKEN: ${{ secrets.SRC_GIT_TOKEN }} DST_TOKEN: ${{ secrets.GITEE_TOKEN }} DST_OWNER: ${{ secrets.GITEE_OWNER }} DST_USER: ${{ secrets.GITEE_USER }} REPO_NAME: ${{ github.event.repository.name }} run: | set -eu if [ -z "${REPO_NAME:-}" ]; then echo "未取到仓库名,退出"; exit 1 fi WORK=$(mktemp -d) trap 'rm -rf "$WORK"' EXIT echo "源:git.5iot.com/iotlcm-public/$REPO_NAME" echo "目标:gitee.com/$DST_OWNER/$REPO_NAME" git clone --mirror "https://jenkins:${SRC_TOKEN}@git.5iot.com/iotlcm-public/${REPO_NAME}.git" "$WORK/repo.git" cd "$WORK/repo.git" echo "本地 ref:$(git for-each-ref --format='%(refname:short)' | tr '\n' ' ')" git push --mirror "https://${DST_USER}:${DST_TOKEN}@gitee.com/${DST_OWNER}/${REPO_NAME}.git" echo "✅ 已同步到 Gitee"