Actions Runner Controller 项目开发与贡献指南

Actions Runner Controller 项目开发与贡献指南

actions-runner-controller Kubernetes controller for GitHub Actions self-hosted runners actions-runner-controller 项目地址: https://gitcode.com/gh_mirrors/ac/actions-runner-controller

项目概述

Actions Runner Controller 是一个 Kubernetes 控制器,用于在 Kubernetes 集群中管理和自动扩展 GitHub Actions 运行器。它允许用户在 Kubernetes 环境中运行 GitHub Actions 工作流,提供弹性伸缩能力,并支持多种认证方式。

开发环境准备

在开始贡献代码前,需要确保本地开发环境已配置以下工具:

  1. Go 语言环境(建议使用最新稳定版)
  2. Docker 或 Podman 容器运行时
  3. Kubernetes 集群(本地可使用 kind 或 minikube)
  4. Helm 包管理工具(用于测试图表变更)
  5. golangci-lint 代码检查工具

代码贡献流程

1. 问题讨论与规划

在开始编码前,建议:

  • 对于新功能或重大变更,先在问题跟踪系统中创建讨论
  • 复杂功能需要编写架构决策记录(ADR)
  • 确认问题未被分配后再开始工作

2. 控制器开发指南

控制器开发可采用快速迭代方式:

# 设置环境变量
. hack/make-env.sh

# 构建并部署变更
VERSION=controller1 \
RUNNER_TAG=runner1 \
make acceptance/pull acceptance/kind docker-buildx acceptance/load acceptance/deploy

此命令会:

  1. 构建控制器和运行器镜像
  2. 加载到 kind 集群
  3. 部署更新后的组件

3. 运行器开发指南

运行器开发需要注意:

  • 提供了多种基础镜像(Ubuntu 20.04/22.04,带/不带Docker)
  • 可使用专用 Makefile 构建运行器镜像
# 构建并推送运行器镜像
NAME=$DOCKER_USER/actions-runner make \
  -C runner docker-{build,push}-ubuntu

测试策略

1. 单元测试与集成测试

项目使用 Ginkgo 测试框架:

# 运行完整测试套件
make test-with-deps

# 选择性运行特定测试
GINKGO_FOCUS='[It] should create a new Runner resource' \
  go test -v -run TestAPIs

2. 端到端测试

端到端测试验证完整功能流程:

# 完整测试(使用kind集群)
DOCKER_USER=yourname \
GITHUB_TOKEN=yourtoken \
make acceptance

# 针对特定测试组合重试
ACCEPTANCE_TEST_DEPLOYMENT_TOOL=helm \
ACCEPTANCE_TEST_SECRET_TYPE=token \
make acceptance/run

3. 非kind集群测试

对于已有Kubernetes集群:

KUBECONFIG=path/to/config \
DOCKER_USER=yourname \
GITHUB_TOKEN=yourtoken \
make docker-build acceptance/setup acceptance/deploy acceptance/tests

代码规范与质量保证

提交前请确保:

  1. 运行 go mod tidy 整理依赖
  2. 使用 gofmt 格式化代码
  3. 通过 make lint 执行静态检查
  4. 更新相关文档(如有必要)

发布流程说明

项目维护者负责以下发布工作:

  1. 控制器镜像发布
  2. Helm 图表更新
  3. 运行器镜像构建
  4. 版本标签管理

发布流程分为多个独立工作流,分别处理不同组件的构建和发布。

测试PR构建

社区成员可帮助测试PR构建:

  1. 检出PR分支
  2. 构建自定义镜像
  3. 部署到测试环境
  4. 提供反馈
gh pr checkout PR_NUMBER
NAME=$DOCKER_USER/actions-runner-controller VERSION=canary make docker-build docker-push

最佳实践建议

  1. 小步提交:保持每个PR专注于单一功能或修复
  2. 充分测试:提供测试证据证明变更有效
  3. 文档更新:随代码变更更新相关文档
  4. 及时沟通:开发过程中保持与维护者沟通

通过遵循这些指南,您可以高效地为项目做出贡献,并确保您的代码能够顺利合并到主分支。

actions-runner-controller Kubernetes controller for GitHub Actions self-hosted runners actions-runner-controller 项目地址: https://gitcode.com/gh_mirrors/ac/actions-runner-controller

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骆万湛Rebecca

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值