首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gitlab有条件地执行阶段

Gitlab有条件地执行阶段
EN

Stack Overflow用户
提问于 2016-10-11 23:52:11
回答 5查看 43K关注 0票数 38

.gitlab-ci.yml中有三个阶段--构建、测试和部署。

一个夜间回归测试阶段需要运行良好的nightly :)

下面是相关的.gitlab-ci.yml代码:

代码语言:javascript
复制
stages:
  - build
  - test
  - deploy

build_project:
  stage: build
  script:
    - cd ./some-dir
    - build-script.sh
  except:
  - tags

#Run this only when say variable 'NIGHTLY_TEST == True'. But HOW?
nightly_regression_test_project:
  stage: test
  script:
    - cd ./some-dir
    - execute test-script

每天标记到only运行test阶段是不可取的。

还有别的主意吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-08-10 18:32:19

如果有人现在正在寻找这一点,gitlab现在已经实现了一个带有变量覆盖的计划构建功能(非常方便)。文档找到了这里

对于在给出这个答案时对此特性的说明感兴趣的人,如下所示:

使用管道调度的

为了安排一条管道:

  1. 导航到项目的管道、->计划、并单击新建计划按钮。
  2. 填写表格
  3. 单击保存管道计划以使更改生效。

我最喜欢的特性是排定的管道变量。

变量文档可以找到这里,但对我来说最有用的信息是优先级,我将在这里重新键入这些信息:

变量的优先级

变量可以被覆盖,并且它们按照以下顺序优先于其他变量:

  1. 触发变量或计划管道变量(优先于所有)
  2. 项目级秘密变量或受保护的秘密变量
  3. 组级秘密变量或受保护的秘密变量
  4. YAML定义的作业级变量
  5. YAML定义的全局变量
  6. 部署变量
  7. 预定义变量(是链中最低的变量)

希望这能有所帮助。我很高兴他们增加了这个功能。

票数 11
EN

Stack Overflow用户

发布于 2018-06-29 14:17:15

exceptonly可以指定触发它们的变量。

您可以在..gitlab ci.yml中使用以下内容:

代码语言:javascript
复制
build1:
  stage: build
  script:
    - echo "Only when NIGHTLY_TEST is false"
  except:
    variables:
      - $NIGHTLY_TEST 

test1:
  stage: test
  script: 
    - echo "Only when NIGHTLY_TEST is true"
  only:
    variables:
      - $NIGHTLY_TEST 
票数 48
EN

Stack Overflow用户

发布于 2016-11-10 23:11:56

根据环境变量,目前没有一种运行作业的方法(您可以始终打开一个特性请求!)但是,如果环境变量不存在,可以使用一个简单的Bash命令立即退出。

类似于:

代码语言:javascript
复制
stages:
  - build
  - test
  - deploy

build_project:
  stage: build
  script:
    - cd ./some-dir
    - build-script.sh
  except:
  - tags

# Run this only when NIGHTLY_TEST environment variable exists.
nightly_regression_test_project:
  stage: test
  script:
    - [ -z "$NIGHTLY_TEST" ] && exit 1;
    - cd ./some-dir
    - execute test-script

如果变量不存在,接下来的测试就不会运行。否则他们会的。

希望这能帮上忙!

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39988497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档