workflow:rules:-if:'$CI_PIPELINE_SOURCE == "push"'# 当为 push 的时候才会触发,其他情况下不会触发该流水线when:never# 上面的条件为 true 时,永远不执行-when:always# 上面的条件为 false 时,永远执行stages:# 指定运行的步骤,没有指定就顺序执行-build-deploy-test-rebasebuild1:# job 的名称tags:-k...
任务的28个关键词分别是,script,after_script,allow_failure,artifacts,before_script,cache,coverage,dependencies,environment,except,extends,image,include,interruptible,only,pages,parallel,release,resource_group,retry,rules,services,stage,tags,timeout,trigger,variables,when 全局的关键词image,services,before_script...
workflow:rules:-if:'$CI_PIPELINE_SOURCE == "push"'# 当为 push 的时候才会触发,其他情况下不会触发该流水线when:never# 上面的条件为 true 时,永远不执行-when:always# 上面的条件为 false 时,永远执行stages:# 指定运行的步骤,没有指定就顺序执行-build-deploy-test-rebasebuild1:# job 的名称tags:-k...
variables:DOMAIN: example.comworkflow:rules:- if: '$DOMAIN == "example.com"'when: always- when: neverstages:- build- test- codescan- deploy build:before_script:- echo "before-script in job"stage: buildscript:- echo "mvn clean "- echo "mvn install"- ech "$DOMAIN"after_script:- echo...
那么一个项目如何配置gitlab CI来实现自动部署呢,主要分两步(前提条件时已经又gitlab-runner服务了):
workflow:rules 顶级workflow:关键字适用于整个管道,并将确定是否创建管道。when :可以设置为always或never . 如果未提供,则默认值always。 代码语言:javascript 复制 variables:DOMAIN:example.comworkflow:rules:-if:'$DOMAIN == "example.com"'-when:always ...
CI代码: citest1: tags: - build stage: test rules: - changes: - Dockerfile when: manual - when: never script: - echo "Do a test here" - echo "For example run a test suite" 运行: 直接运行次作业时,肯定是不会运行流水线的,因此此时是没有Dockerfile文件的。
rules rules定义的规则: if changes exists allow_failure variables when 合法的value见下 on_success on_failure always manual delayed never job:script:echo"Hello, Rules!"rules:-if:'$CI_PIPELINE_SOURCE == "merge_request_event"'when:manual
workflow:rules:-if:$CI_COMMIT_MESSAGE =~ /-draft$/when:never-if:$CI_PIPELINE_SOURCE == "push" 在上面的示例中,定义的是严格的规则。里面使用了两个Gitlab预定义的变量$CI_COMMIT_MESSAGE和$CI_PIPELINE_SOURCE,前者的含义是你往gitlab仓库里提交的commit信息,后者的含义是你往gitlab仓库里做的操作(例...
在另一个项目 LRUNWEB 的 .gitlab-ci.yml 里写上 trigger,内容如下 workflow:rules:-if:'$CI_PIPELINE_SOURCE == "push"'# 当为 push 的时候when:never# 为 true 时,永远不执行-when:always# 为 false 时,永远执行stages:# 指定运行的步骤,没有指定就顺序执行-build-deploy-test-rebasebuild1:tags:...