CI/CD Commands Cheatsheet - CI/CD Pipeline Debugging Reference

Pipeline 卡住或 Job 失败时必备的 CI/CD 调试命令,三大平台按场景分类整理,现场排障直接复制。

SysOps·33 commands·Last updated 2026-07-21
Back to SysOps

GitHub 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/docker
CI 磁盘满常导致 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_OUTPUT
GitHub 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 week
GitLab 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,比反复推送省时间。