html tool

2019年5月29日星期三

gitlab的yml中的job条件


问题:


  1. gitlab的yml中job的执行条件如何定义?
  2. 可以有没有stage的job吗?

结果:

  1.  gitlab的yml中job的执行条件如何定义?


only and except
only和except两个参数说明了job什么时候将会被创建:
  1. only定义了job需要执行的所在分支或者标签
  2. except定义了job不会执行的所在分支或者标签 [note:检索 popexizhi]
以下是这两个参数的几条用法规则:
  1. only和except如果都存在在一个job声明中,则所需引用将会被only和except所定义的分支过滤.
  2. only和except允许使用正则
  3. only和except允许使用指定仓库地址,但是不forks仓库
例子解析:
  1. job将会只在issue-开头的refs下执行,反之则其他所有分支被跳过:
    job:
        # use regexp
        only:
            - /^issue-.*$/ #[popexizhi: 这里对commit 的message直接过滤,看来是很可以有获得commit的file方式的]
        # use special keyword
        except:
            - branches
    
  2. job只会在打了tag的分支,或者被api所触发,或者每日构建任务上运行,
    job:
        # use special keywords
        only:
            - tags      # tag 分支 commit 之后触发
            - triggers  # API 触发 [note:检索 popexizhi]
            - schedules # 每日构建触发 [note:检索 popexizhi]
  3. job将会在父仓库gitlab-org/gitlab-ce的非master分支有提交时运行。
    job:
        only:
            - branches@gitlab-org/gitlab-ce [note:检索 popexizhi]
        except:
            - master@gitlab-org/gitlab-ce [note:检索 popexizhi]
参考:
https://www.jianshu.com/p/3c0cbb6c2936

2.可以有没有stage的job吗?

当前测试结果是不可以,如果使用如下方式:

  1 stages:
  2   - deploy
  3   - test
  4 # - reporting
  5 #生成测试报告-jenkins test
  6 executing-test:
  7   stage: reporting
  8   only:
  9     - /^-all reporting.*$/
 10     # use special keyword
 11   except:
 12     - branches
 13   script:
 15   - bash start_detect_test 12221 test174
 16 #运行commit的单元测试
 17 unittest:
 18   stage: test
 19   script:
 20     # get commit dir,running dir python *_test.py
 21     "bash test_for_unittest.sh"
~                                      

push 到gitlab提示fail格式如下:


没有评论:

发表评论