55 lines
1.5 KiB
YAML
55 lines
1.5 KiB
YAML
name: Prepare
|
||
|
||
on:
|
||
push:
|
||
branches:
|
||
- main
|
||
workflow_dispatch:
|
||
|
||
jobs:
|
||
prepare:
|
||
runs-on: standard-ubuntu-22
|
||
steps:
|
||
- name: 准备复用仓库(强制全量拉取 + 丢弃本地改动)
|
||
run: |
|
||
set -e
|
||
REPO_DIR=/tmp/reused-repo
|
||
REPO_URL="${{ github.server_url }}/${{ github.repository }}.git"
|
||
BRANCH="${{ github.ref_name }}"
|
||
|
||
echo "===== [$(date '+%F %T')] 开始准备仓库 ====="
|
||
echo "复用目录: $REPO_DIR"
|
||
echo "仓库地址: $REPO_URL"
|
||
echo "目标分支: $BRANCH"
|
||
|
||
if [ ! -d "$REPO_DIR/.git" ]; then
|
||
echo "首次使用,克隆仓库..."
|
||
git clone "$REPO_URL" "$REPO_DIR"
|
||
fi
|
||
|
||
cd "$REPO_DIR"
|
||
|
||
echo "----- 丢弃本地所有更改 -----"
|
||
git reset --hard
|
||
git clean -fdx
|
||
|
||
echo "----- 强制拉取最新(含 tag,删除已消失的远端 ref)-----"
|
||
git remote set-url origin "$REPO_URL"
|
||
git fetch origin --prune --prune-tags --tags --force
|
||
|
||
echo "----- 强制对齐到远端分支 -----"
|
||
git checkout -B "$BRANCH" "origin/$BRANCH"
|
||
git reset --hard "origin/$BRANCH"
|
||
git clean -fdx
|
||
|
||
echo "----- 当前状态 -----"
|
||
git log -1 --oneline
|
||
echo "本地 tags:"
|
||
git tag
|
||
|
||
- name: 模拟准备耗时
|
||
run: |
|
||
echo "[$(date '+%F %T')] Prepare 开始 sleep 10s ..."
|
||
sleep 10
|
||
echo "[$(date '+%F %T')] Prepare 完成"
|