小编Sam*_*Sam的帖子

Gitlab仅在上一个作业运行时才运行管道作业

我正在尝试创建一个包含生产和开发部署的管道。在这两种环境中,应用程序都应该使用 docker 构建。但仅当相应目录中发生更改时。

例如:

  • 当前端目录中发生更改时,应该构建和部署前端
  • 当后端目录发生更改时,应该构建和部署后端

起初我没有关键字needs: 。即使未执行构建作业,管道也始终执行deploy_backend和deploy_frontend。

现在我已经添加了needs: 关键字,但是 Gitlab 说yaml invalid当一个目录中只有一个更改时。当两个目录都发生更改时,管道工作正常。例如,当 2 个目录之外的 README.md 发生更改时,也会yaml invalid这样说。

有谁知道如何创建一个管道,该管道仅在指定目录发生更改时运行,并且仅在构建作业运行时运行相应的部署作业?

gitlab-ci.yml:

stages:
  - build
  - deploy

build_frontend:
  stage: build
  only:
    refs:
      - master
      - development
    changes:
      - frontend/* 
  script: 
    - cd frontend
    - docker build -t frontend .

build_backend:
  stage: build
  only:
    refs:
      - master
      - development
    changes:
      - backend/* 
  script: 
    - cd backend
    - docker build -t backend .

deploy_frontend_dev:
  stage: deploy
  only:
    refs: …
Run Code Online (Sandbox Code Playgroud)

pipeline gitlab-ci

11
推荐指数
1
解决办法
5259
查看次数

标签 统计

gitlab-ci ×1

pipeline ×1