基于 Docker 构建轻量级 CI 系统:Gitea 与 Woodpecker CI 集成( 二 )

  • WOODPECKER_GITEA : 默认 false 。启用 Gitea 驱动 。
  • WOODPECKER_GITEA_UR : 默认 https://try.gitea.io 。配置 Gitea 服务器地址 。
  • OODPECKER_GITEA_CLIENT : 默认空 。配置 Gitea OAuth 客户端 ID
  • WOODPECKER_GITEA_SECRE : 默认空 。配置 Gitea OAuth 客户端密钥
  • WOODPECKER_GITEA_SKIP_VERIFY : 默认 false 。不验证 SSL 证书有效性 。
  • WOODPECKER_SERVER : 默认空 。WoodpeckerCI 主服务器地址 。
  • WOODPECKER_AGENT_SECRET : 默认空 。WoodpeckerCI 服务器之间的共享密钥 。可以使用命令 openssl rand -hex 32 生成 。
  • 启动服务器为了便于修改容器参数,我们创建一个 docker-compose.yml 模板来配置 WoodpeckerCI 服务器容器 。
    根据下面的 Docker Compose 模板,使用命令 docker compose up -d 启动 WoodpeckerCI 服务器 。
    # docker-compose.ymlversion: '3'services:woodpecker-server:image: woodpeckerci/woodpecker-server:latestports:- 8000:8000volumes:- woodpecker-server-data:/var/lib/woodpecker/environment:- WOODPECKER_OPEN=true- WOODPECKER_HOST=${WOODPECKER_HOST}- WOODPECKER_GITEA=true- WOODPECKER_GITEA_URL=${WOODPECKER_GITEA_URL}- WOODPECKER_GITEA_CLIENT=${WOODPECKER_GITEA_CLIENT}- WOODPECKER_GITEA_SECRET=${WOODPECKER_GITEA_SECRET}- WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}woodpecker-agent:image: woodpeckerci/woodpecker-agent:latestcommand: agentrestart: alwaysdepends_on:- woodpecker-servervolumes:- /var/run/docker.sock:/var/run/docker.sockenvironment:- WOODPECKER_SERVER=woodpecker-server:9000- WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}volumes:woodpecker-server-data:初始化 WoodpeckerCI登录 WoodpeckerCI 网页面板,http://<host>:8000,点击 login 跳转到 Gitea 授权页面,点击应用授权 。
    注意:如果出现 Unregistered Redirect URI,表示您设置的重定向 URI与 WoodpeckerCI 不匹配,请重新检查 。
    CI 实操:创建 .woodpecker.yml 验证 PipelineWoodpeckerCI 基于 Docker 实现了对各种编程语言和包管理工具的流水线支持 。这部分在官方的使用说明中有完整详细的介绍:
    https://woodpecker-ci.org/docs/usage/intro
    这里我们以 Golang + Node.js 的项目为例,在 Gitea 仓库根目录创建一个 .woodpecker.yml 作为我们自定义的流水线 。示范:
    # .woodpecker.ymlpipeline:backend:image: golangcommands:- go build- go testfrontend:image: nodecommands:- npm install- npm run test- npm run build在 WoodpeckerCI 面板上激活仓库后提交代码到 Gitea 仓库,随即触发 Pipeline 任务 。
    基于 Docker 构建轻量级 CI 系统:Gitea 与 Woodpecker CI 集成

    文章插图
    回到 Gitea 可以看到构建完成后显示的消息:
    ci/woodpecker/push/woodpecker Build is passing

    经验总结扩展阅读