目录

C++ Address Book With GitLink Actions

这是一个基于命令行的 C++ 通讯录项目,包含完整的工程化配置:

  • CMake 构建
  • Catch2 单元测试
  • clang-format 代码格式检查
  • Docker 镜像构建
  • GitLink Actions CI/CD 工作流

CI/CD 状态徽章

请将下面的 <org><repo> 替换为你的组织和仓库名:

![CI](https://gitlink.com/<org>/<repo>/actions/workflows/ci.yml/badge.svg)
![Deploy Staging](https://gitlink.com/<org>/<repo>/actions/workflows/deploy-staging.yml/badge.svg)
![Deploy Prod](https://gitlink.com/<org>/<repo>/actions/workflows/deploy-prod.yml/badge.svg)

目录结构

.
├── .clang-format
├── .gitlink/workflows/
│   ├── ci.yml
│   ├── deploy-prod.yml
│   └── deploy-staging.yml
├── CMakeLists.txt
├── Dockerfile
├── build.sh
├── hello.cpp
├── include/
├── introduce.cpp
├── src/
└── tests/

本地构建与运行

方式一:脚本一键构建 + 测试

chmod +x build.sh
./build.sh

方式二:手动执行 CMake

cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=ON
cmake --build build -j
ctest --test-dir build --output-on-failure
./build/address_book_app

Docker 构建

docker build -t address-book:latest .
docker run --rm -it address-book:latest
  • CI: push/pull_request/workflow_dispatch 触发,执行格式检查、构建、测试、覆盖率上传
  • Staging: main 分支推送或手动触发,构建并推送 GHCR 镜像后执行预发布部署
  • Production: 仅手动触发,且输入 deploy 才执行

Secrets 配置

在仓库 Settings -> Secrets and variables -> Actions 中至少配置:

  • CODECOV_TOKEN: 用于覆盖率上传到 Codecov
  • GITLINK_TOKEN: 用于登录 GHCR 推送镜像

工作流使用方式示例:

with:
  token: ${{ secrets.CODECOV_TOKEN }}
with:
  password: ${{ secrets.GITLINK_TOKEN }}

故障排查清单

  • 流水线未触发:检查分支名是否匹配 main / develop
  • clang-format 失败:本地执行 clang-format -i 统一格式后再提交
  • CMake 配置失败:确认已安装 cmakeg++make
  • 测试失败:先本地运行 ctest --test-dir build --output-on-failure
  • 覆盖率未上传:检查 CODECOV_TOKEN 是否存在且权限正确
  • GHCR 推送失败:检查 GITLINK_TOKEN 是否具备 packages:write 权限
  • 生产部署未执行:确认手动触发时 confirm 输入值为 deploy
关于

104.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号