BluePen BluePen
  • Jenkins
  • OS
  • 算法
随笔
分类
标签
归档
关于
留言板
GitHub (opens new window)

Alex

一个好人
  • Jenkins
  • OS
  • 算法
随笔
分类
标签
归档
关于
留言板
GitHub (opens new window)
  • Jenkins 安装
  • Jenkins 权限控制
  • Jenkins 环境变量
  • 流水线语法
  • 流水线任务
  • Jenkins 邮件通知
  • Jenkins 参数化构建
  • Jenkins 使用 FTP插件上传文件
  • Jenkins 使用提交信息
    • 使用构建策略插件
    • 使用提交信息进行判断
    • 使用命令
  • Jenkins 执行命令和脚本
  • 多分支流水线插件
  • Jenkins REST api
  • Jenkins 踩坑总结
  • Jenkins
Alex
2019-10-01
目录

Jenkins 使用提交信息

提交信息包括两部分

  • commit message
  • changed files

有时需要根据这两项内容做二次判断

-> 使用构建策略插件

Multibranch Build Strategy Extension Plugin (opens new window) 插件可以根据 changed files的信息来决定是否触发/取消本次构建

-> 使用提交信息进行判断

使用到的指令主要为:

  • when
    • <jenkins-url>/directive-generator/ 里选到 when
  • changelog
  • changeset

when

注意

该功能为集成功能,根据当前自动拉取的提交信息判断输入条件。
因此, 不能使用全局配置的 skipDefaultCheckout,且要给当前 stage显式的指定 agent, 从而在 steps进行之前自动 checkout

eg:

stage('build'){
  agent {label 'dev'}
  when {
    changelog '[ci skip]'
  }
  steps{
    // checkout scm
    echo 'done!'
  }
}
1
2
3
4
5
6
7
8
9
10

提示

changeset 的使用同理

-> 使用命令

手动执行命令查询 commit message的方式

stage('pre-build'){
  steps{
      checkout scm
      script {
        boolean result = bat(script: "git log -1 | grep '\\[ci skip\\]'", returnStatus: true) 
        if (result != 0) {
          echo "build..."
        } else {
          echo "include [ci skip] info..."
        }
        String hash_id = bat(script: "git log -1 --pretty=format:%%H", returnStdout: true).trim()
      }
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
编辑此页 (opens new window)
更新于: 2019-10-01
Jenkins 使用 FTP插件上传文件
Jenkins 执行命令和脚本

← Jenkins 使用 FTP插件上传文件 Jenkins 执行命令和脚本→

Copyright © 2019-2022 | yxxy | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式