From dcb03831f31a0538247022f3477920d39133ea9d Mon Sep 17 00:00:00 2001 From: csh Date: Wed, 15 Jul 2026 09:22:34 +0800 Subject: [PATCH] test: add prepare + two workflow_run print workflows --- .gitea/workflows/prepare.yaml | 54 +++++++++++++++++++++++++++++++++++ .gitea/workflows/print1.yaml | 20 +++++++++++++ .gitea/workflows/print2.yaml | 20 +++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 .gitea/workflows/prepare.yaml create mode 100644 .gitea/workflows/print1.yaml create mode 100644 .gitea/workflows/print2.yaml diff --git a/.gitea/workflows/prepare.yaml b/.gitea/workflows/prepare.yaml new file mode 100644 index 0000000..9f86217 --- /dev/null +++ b/.gitea/workflows/prepare.yaml @@ -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 完成" diff --git a/.gitea/workflows/print1.yaml b/.gitea/workflows/print1.yaml new file mode 100644 index 0000000..76ecba2 --- /dev/null +++ b/.gitea/workflows/print1.yaml @@ -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 完成" diff --git a/.gitea/workflows/print2.yaml b/.gitea/workflows/print2.yaml new file mode 100644 index 0000000..61a0773 --- /dev/null +++ b/.gitea/workflows/print2.yaml @@ -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 完成"