gitlab-ci

GitLab CI/CD 流水线配置

补充说明

GitLab CI/CD 读取仓库根目录的 .gitlab-ci.yml,由 GitLab Runner 执行 job。它支持 stage 顺序、DAG 依赖、规则匹配、缓存与制品,配置能力比 GitHub Actions 更集中。

常用示例

glab ci lint
glab ci run
glab ci status
glab ci view
glab pipeline list

最小配置:

stages: [build, test, deploy]

default:
  image: node:24
  cache:
    key:
      files: [package-lock.json]
    paths: [.npm/]

build:
  stage: build
  script:
    - npm ci --cache .npm --prefer-offline
    - npm run build
  artifacts:
    paths: [dist/]
    expire_in: 1 week

test:
  stage: test
  needs: [build]
  script:
    - npm test

deploy:
  stage: deploy
  rules:
    - if: '$CI_COMMIT_BRANCH == "main"'
      when: manual
  script:
    - ./deploy.sh

易错点与排错

相关命令

读完自测

合上页面,先回答,再展开对照。

  1. 同一个 job 里可以混用 rules 和 only/except 吗?
  2. cache 能当作构建产物在不同 job 间可靠传递吗?
  3. job 一直处于 pending,常见原因是什么?
答案
  1. 不建议。rules 是新写法,only/except 是旧写法,混用会让行为难以预测。
  2. 不能。cache 是尽力而为、可能丢失,构建产物应放 artifacts。跨 pipeline 还需要 dependencies 或外部存储。
  3. 常见是 Runner 的 tag 不匹配或没有可用 Runner。先看 Runner 标签和并发。