feat/initial-actions
ci-actions
homelab Gitea Actions 的可复用安全构件。目前提供:
spiffe-openbao-login:用 runner 的 JWT-SVID 换取短期 OpenBao token,并在 job 的 post 阶段主动吊销。setup-nexus:为匿名读取配置 Ansible Galaxy、Go Modules 与 OCI repository 地址。
Runner 前提
spiffe-openbao-login 不下载工具;runner image 必须包含 Node.js 20、spire-agent,并挂载
可访问的 SPIFFE Workload API socket。身份注册、OpenBao role 与 policy 仍由基础设施 IaC
管理,Action 不创建或扩大授权。
- uses: panxiao81/ci-actions/spiffe-openbao-login@v1
with:
role: ci-example
- uses: panxiao81/ci-actions/setup-nexus@v1
with:
ansible: 'true'
go: 'true'
oci: 'true'
登录 Action 将 BAO_ADDR、BAO_TOKEN 写入 runner 的 GITHUB_ENV,并通过
GITHUB_STATE 将 token 交给 post action。它们属于 runner 管理的 job 临时文件;因此只允许
在一次性 Pod/VM runner 使用,不得在共享常驻 runner 或会持久化工作目录的 runner 上使用。
token 不作为 Action output,也不上传 artifact/cache。
setup-nexus 只配置匿名读取,不读取 OpenBao secret。正式发布账号建立后,应新增独立的
Nexus login Action,并绑定精确 SPIFFE ID 与最小 OpenBao policy;不得让本 Action 读取
管理员凭据。