CI/CD Commands Cheatsheet - CI/CD Pipeline Debugging Reference
Pipeline 卡住或 Job 失败时必备的 CI/CD 调试命令,三大平台按场景分类整理,现场排障直接复制。
Back to SysOpsGitHub Actions 6
gh run list --limit 10列出最近 10 次运行,快速找到失败流水线
gh run view <run-id> --log-failed查看指定运行的失败步骤日志
gh run rerun <run-id> --failed只重跑失败 job,不重跑成功的
gh run cancel <run-id>取消正在运行或卡住的流水线
gh workflow run deploy.yml --ref main手动触发指定 workflow
gh api repos/:owner/:repo/actions/runners查 Self-hosted Runner 在线状态和标签
GitLab CI 6
gitlab-runner list列出本机注册的 Runner
gitlab-runner verify校验 Runner 与 GitLab 连接是否正常
gitlab-runner run前台启动 Runner 拉取任务,调试常用
gitlab-ci-lint < .gitlab-ci.yml校验 CI 配置语法
glab ci list --per-page 20用 glab CLI 列出最近流水线
curl -H "PRIVATE-TOKEN: <token>" "https://gitlab/api/v4/projects/:id/pipelines"通过 API 查询流水线状态
Jenkins 5
jenkins-cli build <job> -f -v触发并跟踪构建输出,CLI 调试常用
jenkins-cli console <job> <build>拉取指定构建的完整控制台日志
systemctl status jenkins看 Jenkins 服务状态,排查卡死或 OOM
ls -lah /var/lib/jenkins/jobs/<job>/builds/查看构建历史占用磁盘
jenkins-cli list-jobs列出所有 job 名称,脚本批量操作前先确认
Docker CI 构建 5
docker build -t app:ci --target build .多阶段构建指定 target 阶段
docker build --cache-from=app:base .利用缓存层加速构建
docker tag app:ci registry/app:$(git rev-parse --short HEAD)用 git commit 短哈希打标签
docker buildx build --platform linux/amd64,linux/arm64 .多架构构建并推送
docker history app:ci --no-trunc查看镜像各层构建历史,排查体积
Runner 与缓存排查 5
docker ps --filter "name=runner"看容器化 Runner 是否在运行
df -h /var/lib/dockerCI 磁盘满常导致 Runner 拉镜像或写日志失败
act -j <job> -W .github/workflows/ci.yml本地用 act 复现 GitHub Actions
gitlab-runner exec docker <job>本地复现 GitLab CI job(旧版支持)
du -sh ~/.cache/pnpm /root/.cache排查缓存目录是否撑爆磁盘
通用模式与最佳实践 6
echo "key=value" >> $GITHUB_OUTPUTGitHub Actions 设置 step 输出(新版)
${{ secrets.NAME }} / $CI_NAME引用 secrets 和 CI 变量
needs: [build] / depends_on: [test]声明 job 间依赖关系控制执行顺序
workflow_dispatch: / schedule: / push:GitHub Actions 触发器配置
rules: / only: / except:GitLab CI 条件控制 job 执行
artifacts: paths: / expire_in: 1 weekGitLab CI 制品保存与过期配置
💡 Tips
- job 一直 pending 先查 Runner 在线状态和标签匹配,再看并发额度,而不是反复改 YAML。
- 缓存命中率低时检查 key 是否用了 lockfile hash,路径是否覆盖真实依赖目录。
- CI 日志可能长期留存,排查时别用 echo 打印 secrets 或 token。
- Docker 多阶段构建把编译依赖和运行环境分离,可大幅减小最终镜像体积。
- CI 变量分 protected 和 masked,敏感信息务必勾选 masked 防止日志泄露。
- 本地复现 CI 用 act(GitHub Actions)或 gitlab-runner exec,比反复推送省时间。