OPS—Jenkins Poll SCM

概述

在Jenkins中,SCM指的是源代码管理(Source Code Management——SCM)。而poll的意思是轮询,那么poll SCM指的就是轮询代码管理。开发过程中,我们会把修改后的源代码提交到源代码管理工具(如github、gitlab或gerrit等)上。而Jenkins一直按照设置的频率去刷新代码是否存在变更,发现代码变更后会触发后续的相关操作。

界面配置方式

在Jenkins中创建一个项目后,我们会先配置Source Code Management(SCM),配置完SCM后就可以在Build Triggers的选项中配置poll SCM了。

poll SCM很象Linux中的crond服务(计划任务),它的语法结构与crond也很类似,具体的设置方法这里就不列出了,在Jenkins的相关帮助中写得已经非常详细了。

其他的编译配置与日常配置相同,配置完成可以将代码提交到SCM中进行测试。在提交完成后的1分钟内,Jenkins会自动触发项目自动构建。

Pipeline的配置方式

1、下面我们先创建一个pipeline的编译条目

注意,pipeline的脚本内容尽可能使用scm,不要直接写脚本在jenkins的配置中,否则由于jenkins的服务器损块而造成损失。

2、pipeline的脚本内容

在日常的使用中,涉及到微服务相关的构建工作。为了更灵活,我们通常会使用pipeline来进行服务的构建。在pipeline中也是支持Pool SCM的,配置如下:

pipeline {
    agent any
    tools {
        maven 'maven-3.8.6'
        jdk 'openjdk18'
    }

    stages {
        stage('Initialize') {
            steps {

                script {
                    properties([pipelineTriggers([pollSCM('* * * * *')])])
                }

                checkout([$class: 'GitSCM',
                    branches: [[name: 'master']],
                    userRemoteConfigs: [[credentialsId:  'jenkins_rsa',
                    url: 'ssh://jenkins@scm.baidu.com/api-simulation']]])
            }
        }

        stage('build') {
            steps {
                sh 'mvn clean compile -pl company jib:build'
            }
        }
    }
}

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注