惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
博客园 - Franky
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
阮一峰的网络日志
阮一峰的网络日志
量子位
雷峰网
雷峰网
宝玉的分享
宝玉的分享
V
Visual Studio Blog
博客园_首页
小众软件
小众软件
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
S
SegmentFault 最新的问题
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学

V2EX

我用 AI 写代码,但终端管理反而成了累赘——于是我做了 codux [调研] 各位在公司都用什么 ide 和 agent 写代码? 老运维 share 一个运维平台 看到有公司考核 token 指标,很好奇大家上个月的 AI 账单是多少 GLM-Coding 调用持续报错: z.ai 的 Lite 套餐几乎无法使用,官方 Pro/Max 是否稳定? 现在还有什么渠道可以稳定安全地使用 Claude 吗? 上海漕河泾内推,本组有 2 个 hc,一个后端,一个前端,预算都是 20k 左右,不打卡,氛围好 如果 V2EX 上有一组不永久保存聊天记录(比如只保存 7 天或者 24 小时)的聊天室,那么会开启哪些有用或者有趣的可能? gemini cli 貌似挂了,一直返回 403 第一次在自媒体上赚到钱 收集了最近在使用的低价 GPT, Gemini,邮箱等 AI 会员的小店合集 讨论个大实话:现在企业还在说 AI 编程提效 20%, 30%的,真的太落后,没用懂 AI。因为包括很多前沿公司,已经狂奔到提效 200%-500%的情况 [招聘][远程][币安] 前端/后端/QA/iOS/Android 至少 3 年以上经验 目前有大量 HC 欢迎投递 Chatgpt Pro 用量用不完的可以开这些设置 面试的时候好像遇到钓鱼了,给各位避个坑 cursor 年续费 22 号到期, 自动续费是否还是老的计次套餐呢 被两件破事毁掉的一下午,琐碎的内耗消磨人的精力 使用 Planet 存储 Codex 的会话或者重要信息 如果业务部门领导不要你开发功能,而是要求你教会它用 claude code 开发功能,你会怎么做? 分享一个 MacOS 接绿联 CM818 USB 转 DP 转接器使用感受 我的 HR 朋友 10 年老 Java ,非全大专,大家帮忙看看简历 开源了一个 AI 口语练习工具,音素级发音评分,完全免费可自部署 V2EX 上有哪些你觉得很有趣、印象深刻的妹纸? 字节为啥不出个国内版 Vercel? 有在大马的朋友吗? 问个运营商问题 你们在有领导的公司大群发过的最大胆的消息是什么 公司裁员,目前没有工作。想试试摆摊,做一个移动鲜啤打酒车 我的硬盘 Memblaze Pblaze 5 Linux 下不识别,给 Linux 内核提交了补丁, AI 说有望被合并 只有我一个人觉得 codex 不好用?
在 Windows 上部署 Woodpecker agent ,实现 Windows 上的 CI
AhFei · 2026-05-14 · via V2EX

我需要在 Windows 上编译 flutter 应用,因此需要在 Windows 系统上部署 Woodpecker agent 。

下面是我花了一整天的时间,探索出的方案,可以完美运行。

前置准备

  1. 在 Windows 上安装 git
  2. 把这个路径加入环境变量里系统的 PATH C:\Program Files\Git\usr\bin,这里面提供了 cat 等工具
  3. 在 Woodpecker 网页上注册一个 agent token ,参考 https://woodpecker-ci.org/docs/administration/configuration/agent#using-agent-token
  4. 建议安装 curl ,下载网址 https://curl.se/windows/ ,下载后就是一个可执行文件,将之放到任意文件夹,然后将其所在目录添加到环境变量里
  5. 建议安装 Woodpecker 的 git 插件 https://woodpecker-ci.org/plugins/git-clone ,clone 仓库需要它,也是一个单纯的可执行文件,下载后,推荐放到 C:\woodpecker_plugin ,然后把这个路径添加到环境变量里

安装

  1. 创建 C:\tmp 作为工作目录。因为 Windows 对路径名称有长度限制,而 agent 默认的工作目录路径很长,对于 flutter 项目,很容易触发长度限制导致编译失败
  2. https://github.com/woodpecker-ci/woodpecker/releases 里下载对应的 agent ,需要和服务端的版本号一样

推荐开启 Windows 长路径支持。通过 win + R 打开”运行“,然后输入 gpedit.msc 确定,按路径寻找:计算机配置 → 管理模板 → 系统 → 文件系统 → 启用 Win32 长路径,右键编辑,设置为:已启用。

运行

务必在 PowerShell 里运行

先配置环境变量,需要填入 WOODPECKER_SERVER 和 WOODPECKER_AGENT_SECRET 。

$env:WOODPECKER_SERVER="1.2.3.4:9000"
$env:WOODPECKER_AGENT_SECRET="LK34BX5XDXNHADFBFGFAM5ENGM44FBSZBDNGFZSVDCDWOGA===="
$env:WOODPECKER_MAX_WORKFLOWS="1"
$env:WOODPECKER_BACKEND="local"
$env:WOODPECKER_PLATFORM="windows/amd64"
$env:WOODPECKER_BACKEND_LOCAL_TEMP_DIR="C:\tmp"

由于 Windows 本身不支持 docker ,这里是在本机上执行的,为了避免多个工作者干扰,最好把 WOODPECKER_MAX_WORKFLOWS 设置为 1

运行

.\woodpecker-agent.exe

测试是否能正常运行

可以在一个实验的仓库,使用下面的配置进行测试。如果正常运行,会打开 C:\Users\ 文件夹。

when:
  - event: push
    branch: main

labels:
  platform: windows/amd64
  backend: local

steps:
  - name: test-exprorer
    image: powershell
    commands:
      - explorer C:\Users\

到这里就结束了,需要注意的是,commands 里必须用 powershell 的命令。

使用 ssh 克隆仓库

我猜测 git plugin 是通过 Git Credential Manager 进行校验,这样经常失败 remote: Failed to authenticate user,更可靠的方案是直接用用户名和密码登录,但是这个 plugin 不支持,另外这样也不安全。

要使用 ssh 校验,同样稳定,不过步骤稍微繁琐。

首先,需要在 Gitea 添加公钥,流程可看 https://yanh.tech/2025/04/deployment-process-of-gitea/#ssh

然后,替换默认的 clone 步骤,如下:

clone:
  git:
    image: woodpeckerci/plugin-git
    settings:
      use-ssh: true
      remote-ssh: ssh://[email protected]:2222/vfly2/plantodo.git
      ssh-key: C:/Users/Administrator/.ssh/id_ed25519

这样之后,就不会再发生 Failed to authenticate user

Windows Service

但是,我想实现开机自启、失败自动重启,有办法吗?

使用 Windows Service 。查看 以 Windows 服务运行程序并开机自启 - 技焉洲 了解步骤,下面是针对 woodpecker 提供的具体命令。

  1. 确保原程序在命令行下能正常启动。
  2. https://github.com/mtkennerly/shawl/releases 下载压缩包,解压后有一个 shawl
  3. 以管理员权限打开 powershell ,使用 shawl 添加服务,在原命令前加点内容就行,以及使用绝对路径:
.\shawl.exe add --name woodpecker_agent `
  --env WOODPECKER_SERVER="1.2.3.4:9000" `
  --env WOODPECKER_AGENT_SECRET="LK34BX5XDXNHADFBFGFAM5ENGM44FBSZBDNGFZSVDCDWOGA====" `
  --env WOODPECKER_MAX_WORKFLOWS="1" `
  --env WOODPECKER_BACKEND="local" `
  --env WOODPECKER_PLATFORM="windows/amd64" `
  --env WOODPECKER_BACKEND_LOCAL_TEMP_DIR="C:\tmp" `
  -- C:/Users/Administrator/Downloads/woodpecker-agent/woodpecker-agent.exe
  1. 打开命令行,注意不是 powershell ,sc 命令只能在命令行里运行才能看到结果,不明白原因
  2. 查看服务是否添加成功: sc qc woodpecker_agent
  3. 指定运行服务的用户: sc config woodpecker_agent obj=".\Administrator" password="456"。(必做,因为默认的运行用户是 local system ,这和我们直接在 PowerShell 启动的用户不一样,可能会有奇奇怪怪的错误)
  4. 先试一下启动服务: sc start woodpecker_agent
  5. 设置开机自启: sc config woodpecker_agent start=auto

参考资料(省略了官方文档):

  1. https://github.com/GECO-IT/woodpecker-windows/blob/main/agent/backend-local/README.md

原文链接: https://yanh.tech/2026/05/woodpecker-installation-and-usage/

版权声明:本博客所有文章除特別声明外,均为 AhFei 原创,采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 技焉洲 (yanh.tech)