Wander Monitor

Polar Sponsor
爱发电 赞助
.NET 9.0

指导使用Wander监控GitHub Actions,无需轮询。用于用户推送代码并希望获得CI通知、询问如何监控工作流、避免...

漫游- CI 工作流程监视器

功能概述

漫游- CI 工作流程监视器是一项面向实际任务的技能,主要用于Wander.。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 执行完成后建议检查结果是否符合预期,并保留必要记录。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Wander — CI 工作流监控器

无需守候,只需漫游(Wander)。 一款用于监控 GitHub Actions 的命令行工具。不依赖轮询;可选在工作流运行完成时向 macOS 通知中心发送通知。

代理自动触发(强制启用)

每次执行 git push 并触发 GitHub Actions 后,均应在后台模式下自动启动 Wander,除非用户明确选择禁用该行为。

  1. 若仓库根目录存在 .workflows.yml:优先使用项目级封装脚本(如 scripts/watch-*.sh),若其存在则调用之。
  2. 否则:执行 "$WANDER_HOME/watch-workflow-bg.sh" (或传入项目实际使用的 workflow 文件)。
  3. 以后台方式运行,确保终端会话保持响应性。
  4. 约 8 秒后检查终端输出,并报告初始状态。

若仓库中不存在 .workflows.yml,但存在 .github/workflows/ 目录,则可提供监控功能,但**不会未经确认自动启动**。

适用场景

  • 用户希望在 git push 后监控某工作流
  • 用户要求在 CI 完成时收到通知
  • 用户希望避免手动刷新 Actions 页面
  • 运行时间较长的端到端(E2E)或发布(publish)流水线(耗时数分钟)
  • 项目已集成 CI 监控能力(例如 ClawHub publish)

前提条件

  • 已安装并完成身份验证的 gh CLI
  • jq(脚本依赖)
  • 本地已克隆 Wander 仓库;通过环境变量 WANDER_HOME 指定路径,或默认使用 ~/code/wander
  • macOS 系统(用于通知中心集成)

安装(工具)

git clone https://github.com/ERerGB/wander.git ~/code/wander
cd ~/code/wander
chmod +x *.sh

将以下内容添加至 ~/.zshrc 或 ~/.bashrc:

export WANDER_HOME="${WANDER_HOME:-$HOME/code/wander}"
export PATH="$WANDER_HOME:$PATH"
alias wf='watch-workflow.sh'
alias wfbg='watch-workflow-bg.sh'
alias wfdt='watch-workflow-detached.sh'

或直接在 Wander 仓库中运行 ./scripts/install-personal.sh(详见主 README)。

使用模式

智能推送(适用于 Wander 仓库或类似结构)

cd /path/to/wander
./smart-push.sh

根据变更文件自动建议 smoke / e2e / skip 等操作,随后执行推送并启动监控。

手动控制(任意仓库)

git push
cd /path/to/target-repo
"$WANDER_HOME/watch-workflow-bg.sh" publish.yml

运行模式

模式 脚本 适用场景
前台模式 watch-workflow.sh 阻塞当前终端,直至工作流完成
后台模式 watch-workflow-bg.sh 继续其他工作;完成后发出通知
分离模式 watch-workflow-detached.sh 可关闭终端;日志保存于 ~/.wander_logs/ 目录下

项目级封装脚本(推荐)

#!/bin/bash
# scripts/watch-publish.sh
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
WANDER_DIR="${WANDER_DIR:-$(dirname "$REPO_ROOT")/wander}"
cd "$REPO_ROOT"
exec "$WANDER_DIR/watch-workflow-bg.sh" publish.yml "$@"

然后执行:git push && ./scripts/watch-publish.sh

其他示例:项目 openclaw-uninstall 在存在时即使用 ./scripts/watch-publish.sh 和 watch-publish-detached.sh。

工作流注册表

为支持 check_window / expected_duration 配置,请在项目根目录添加 .workflows.yml,或设置环境变量 WORKFLOW_REGISTRY_FILE:

workflows:
  - name: "publish.yml"
    description: "Publish to ClawHub"
    check_window: 120
    expected_duration: 30
    category: "publish"

若某工作流未在注册表中显式声明,则默认 check_window 值为 300 秒。

边界情况

场景 行为 提示
工作流在约 30 秒内完成 可能显示 “already completed” 并快速发出通知 watch-workflow-bg.sh 可检测近期已完成的运行
推送后立即启动监控 工作流运行记录可能需等待 5–10 秒才出现 脚本最多等待约 30 秒以等待运行记录出现
推送至错误分支 等待窗口期结束后仍无工作流启动 请确认 workflow 中 on: 所定义的分支过滤规则与当前分支匹配
仓库中无 lockfile(如 package-lock.json / yarn.lock) setup-node 步骤中启用 cache: npm 可能失败 若无 package lockfile,请移除 cache: npm 配置

当 CI 失败时

  1. 从终端输出或通知中记录运行 ID(RUN_ID)。
  2. 查看失败日志:gh run view --log-failed
  3. 修复问题后重新 git push,或直接重跑失败作业:gh run rerun --failed

WANDER_HOME 解析顺序

  • 优先使用环境变量 WANDER_HOME(若已设置)
  • 其次尝试同级路径:$(dirname "$REPO_ROOT")/wander(常见于封装脚本中)
  • 最后回退至默认路径:~/code/wander

参考文档

  • Wander README
  • EDGE_CASES.md
  • COFFEE_BREAK.md

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.9万人学习