test: add prepare + two workflow_run print workflows
This commit is contained in:
@@ -0,0 +1,54 @@
|
|||||||
|
name: Prepare
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
prepare:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
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 完成"
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
name: Print One
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_run:
|
||||||
|
workflows: ["Prepare"]
|
||||||
|
types:
|
||||||
|
- completed
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
print:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: 每 10 秒打印一次数字
|
||||||
|
run: |
|
||||||
|
echo "[$(date '+%F %T')] Print One 启动 (上游 Prepare 结论: ${{ github.event.workflow_run.conclusion }})"
|
||||||
|
for i in $(seq 1 5); do
|
||||||
|
echo "[$(date '+%F %T')] Print One -> $i"
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
|
echo "[$(date '+%F %T')] Print One 完成"
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
name: Print Two
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_run:
|
||||||
|
workflows: ["Prepare"]
|
||||||
|
types:
|
||||||
|
- completed
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
print:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: 每 10 秒打印一次数字
|
||||||
|
run: |
|
||||||
|
echo "[$(date '+%F %T')] Print Two 启动 (上游 Prepare 结论: ${{ github.event.workflow_run.conclusion }})"
|
||||||
|
for i in $(seq 1 5); do
|
||||||
|
echo "[$(date '+%F %T')] Print Two -> $i"
|
||||||
|
sleep 10
|
||||||
|
done
|
||||||
|
echo "[$(date '+%F %T')] Print Two 完成"
|
||||||
Reference in New Issue
Block a user