|
||
---|---|---|
.. | ||
ci.yml | ||
deploy.yml | ||
README.md |
Forgejo Actions 工作流配置
本项目使用 Forgejo Actions 进行 CI/CD 自动化,专注于代码质量检查和 Docker 镜像构建。
工作流文件
1. CI 工作流 (ci.yml
)
- 触发条件: 推送到
main
、develop
分支或创建 Pull Request - 功能:
- 代码风格检查 (
yarn lint
) - TypeScript 类型检查 (
yarn typecheck
) - 应用构建 (
yarn build
) - 安全漏洞扫描 (
yarn audit
)
- 代码风格检查 (
2. 构建和打包工作流 (deploy.yml
)
- 触发条件: 推送到
main
、develop
分支、创建标签或 Pull Request - 功能:
- 构建并推送 Docker 镜像到 Forgejo Container Registry
- 自动生成多种标签格式
- 支持多架构构建 (linux/amd64, linux/arm64)
- 生成构建信息摘要
Docker 镜像标签策略
工作流会根据不同的触发条件自动生成相应的标签:
- 分支推送:
main
,develop
等分支名 - 版本标签:
v1.2.3
→1.2.3
,1.2
,1
latest
(仅限 main 分支)
- Pull Request:
pr-123
- 提交哈希:
main-abc1234
,develop-def5678
必需的环境变量和密钥
Repository Secrets
在 Forgejo 仓库设置中配置以下密钥:
GITEA_TOKEN=your_forgejo_access_token
获取 Forgejo Access Token:
- 登录 Forgejo
- 进入 Settings → Applications → Generate New Token
- 选择权限:
write:packages
(用于推送镜像) - 将生成的 Token 添加到仓库 Secrets
Environment Variables
工作流会自动使用以下内置变量:
env:
REGISTRY: ${{ gitea.server_url }} # Forgejo 服务器地址
IMAGE_NAME: ${{ gitea.repository }} # 仓库名称
使用指南
1. 首次设置
- 在 Forgejo 仓库设置中添加
GITEA_TOKEN
- 确保 Token 有
write:packages
权限 - Forgejo Container Registry 会自动启用
2. 日常开发
- 推送代码到任何分支会触发 CI 检查
- 推送到
main
或develop
分支会额外触发 Docker 镜像构建 - 创建 Pull Request 会运行完整的 CI 流程和镜像构建
3. 版本发布
- 创建版本标签 (如
v1.0.0
) 会自动构建并推送对应版本的镜像 - 支持语义化版本标签,自动生成主版本和次版本标签
镜像使用
构建完成后,可以通过以下方式使用镜像:
# 使用最新版本 (假设 Forgejo 地址为 git.example.com)
docker pull git.example.com/username/next-windfonts:latest
# 使用特定版本
docker pull git.example.com/username/next-windfonts:1.2.3
# 使用分支版本
docker pull git.example.com/username/next-windfonts:main
Forgejo Container Registry 优势
- 集成性: 与代码仓库完全集成,无需外部服务
- 权限管理: 使用 Forgejo 的用户权限系统
- 私有镜像: 支持私有镜像,权限控制更精细
- 无额外成本: 不需要 Docker Hub 等外部服务
- 网络优化: 在同一服务器上,推送和拉取更快
注意事项
- 权限: 确保
GITEA_TOKEN
有足够的权限访问 Container Registry - 存储: Docker 镜像会占用 Forgejo 服务器存储空间
- 清理: 建议定期清理旧版本镜像以节省空间
- 网络: 构建过程需要访问外网下载依赖
故障排除
常见问题
- 镜像推送失败: 检查
GITEA_TOKEN
权限是否包含write:packages
- 构建失败: 检查 Dockerfile 和依赖配置
- 标签格式错误: 确保版本标签符合语义化版本规范
- Registry 访问失败: 确认 Forgejo Container Registry 功能已启用
调试方法
- 查看 Actions 执行日志
- 检查 Forgejo Container Registry 状态
- 验证 Token 权限配置
- 在本地环境测试 Docker 构建
Container Registry 管理
在 Forgejo 中查看和管理镜像:
- 进入仓库页面
- 点击 "Packages" 标签
- 查看所有构建的镜像版本
- 可以删除不需要的镜像版本