云计算(9)—— jekins(2)

云计算(9)—— jekins(2)

三丰 soft张三丰 html

流水线

云计算(9)—— jekins(2)

Jenkins Pipeline整体介绍

1.Pipeline 是Jenkins 2.X核心特性,帮助Jenkins实现从CI到CD与DevOps的转变 2.Pipeline 简而言之,就是一套运行于Jenkins上的工做流框架,将本来独立 运行于单个或者多个节点的任务链接起来,实现单个任务难以完成的复杂流 程编排与可视化。node

什么是Jenkins Pipeline

1.Jenkins Pipeline是一组插件,让Jenkins能够实现持续交付管道的落地和实施。2.持续交付管道(CD Pipeline)是将软件从版本控制阶段到交付给用户或客户的完 整过程的自动化表现。3.软件的每一次更改(提交到源代码管理系统)都要通过一个复杂的过程才能被发布。git

Why Pipeline?

本质上,Jenkins 是一个自动化引擎,它支持许多自动模式。Pipeline向Jenkins中添加了一组强大的工具, 支持用例 简单的CI到全面的CD pipeline。经过对一系列的相关任务进行建模, 用户能够利用pipeline的不少特性:api

• 代码:Pipeline以代码的形式实现,一般被检入源代码控制,使团队可以编辑, 审查和迭代其CD流程。• 可持续性:Jenkins重启或者中断后都不会影响Pipeline Job。• 停顿:Pipeline能够选择中止并等待人工输入或批准,而后再继续Pipeline运行。• 多功能:Pipeline支持现实世界的复杂CD要求,包括fork/join子进程,循环和 并行执行工做的能力。• 可扩展:Pipeline插件支持其DSL的自定义扩展以及与其余插件集成的多个选项。框架

Pipeline与freestyle区别

1.Job调度方式 pipeline:经过结构化pipeline 语法进行调度,易于理解与阅读 freestyle:经过jenkins api或者cli进行调度ide

2.Job显示形式 pipline:提供上帝视角(全局视图) freestyle:没有视图工具

Jenkins Pipeline Job构建配置

云计算(9)—— jekins(2)
云计算(9)—— jekins(2)
云计算(9)—— jekins(2)
云计算(9)—— jekins(2)
云计算(9)—— jekins(2)

1.建立pipeline job任务,新建任务》输入任务名称》选择“流水线”》点击【肯定】
云计算(9)—— jekins(2)
添加描述,This is my first test pipeline job
云计算(9)—— jekins(2)
添加 pipeline脚本,点击【保存】
云计算(9)—— jekins(2)
脚本解释gitlab

1.声明脚本,添加环境变量
云计算(9)—— jekins(2)
2.添加选项参数deploy_env,以及文本参数version
云计算(9)—— jekins(2)
3.新建stage任务,将定义deploy_env、version参数,传入到test.properties 中
云计算(9)—— jekins(2)
4.检查test.properties是否存在内容
云计算(9)—— jekins(2)
5.完整脚本测试

#!groovy

pipeline {
    agent {node {label 'master'}}

    environment {
        PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
    }

    parameters {
        choice(
            choices: 'dev\nprod',
            description: 'choose deploy environment',
            name: 'deploy_env'
            )
        string (name: 'version', defaultValue: '1.0.0', description: 'build version')
    }

    stages {
        stage("Checkout test repo") {
            steps{
                sh 'git config --global http.sslVerify false'
                dir ("${env.WORKSPACE}") {
                    git branch: 'master', credentialsId:"9aa11671-aab9-47c7-a5e1-a4be146bd587", url: 'https://root@gitlab.example.com/root/test-repo.git'
                }
            }
        }
        stage("Print env variable") {
            steps {
                dir ("${env.WORKSPACE}") {
                    sh """
                    echo "[INFO] Print env variable"
                    echo "Current deployment environment is $deploy_env" >> test.properties
                    echo "The build is $version" >> test.properties
                    echo "[INFO] Done..."
                    """
                }
            }
        }
        stage("Check test properties") {
            steps{
                dir ("${env.WORKSPACE}") {
                    sh """
                    echo "[INFO] Check test properties"
                    if [ -s test.properties ]
                    then 
                        cat test.properties
                        echo "[INFO] Done..."
                    else
                        echo "test.properties is empty"
                    fi
                    """

                    echo "[INFO] Build finished..."
                }
            }
        }
    }
}

云计算(9)—— jekins(2)

jenkins配置邮件通知

安装邮件插件ui

因为Jenkins自带的邮件功能比较鸡肋,所以这里推荐安装专门的邮件插件,不过下面也会顺带介绍如何配置Jenkins自带的邮件功能做用。

能够经过系统管理→管理插件→可选插件,选择Email Extension Plugin插件进行安装:
云计算(9)—— jekins(2)

因为我已经安装了该插件,所以这里显示在已安装目录下,还未安装的童鞋能够经过右上角的搜索框搜索改插件,而后在线安装,安装好以后重启Jenkins。
云计算(9)—— jekins(2)
2、系统设置

经过系统管理→系统设置,进行邮件配置:
云计算(9)—— jekins(2)

一、设置jenkins地址和管理员邮箱地址

云计算(9)—— jekins(2)
二、设置发件人等信息

PS:这里的发件人邮箱地址切记要和系统管理员邮件地址保持一致(固然,也能够设置专门的发件人邮箱,不过不影响使用,根据具体状况设置便可)

云计算(9)—— jekins(2)
云计算(9)—— jekins(2)
上图的默认收件人邮箱能够添加多人,中间用英文半角逗号隔开便可。

三、配置邮件内容模版
云计算(9)—— jekins(2)

附:邮箱内容模版(Default Content):

<!DOCTYPE html>    
<html>    
<head>    
<meta charset="UTF-8">    
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
</head>    

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
    offset="0">    
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
        <tr>    
            本邮件由系统自动发出,无需回复!<br/>            
            各位同事,你们好,如下为${PROJECT_NAME }项目构建信息</br> 
            <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
        </tr>    
        <tr>    
            <td><br />    
            <b><font color="#0B610B">构建信息</font></b>    
            <hr size="2" width="100%" align="center" /></td>    
        </tr>    
        <tr>    
            <td>    
                <ul>    
                    <li>项目名称 :${PROJECT_NAME}</li>    
                    <li>构建编号 :第${BUILD_NUMBER}次构建</li>    
                    <li>触发缘由:${CAUSE}</li>    
                    <li>构建状态:${BUILD_STATUS}</li>    
                    <li>构建日志:<a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
                    <li>构建  Url :<a href="${BUILD_URL}">${BUILD_URL}</a></li>    
                    <li>工做目录 :<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    
                    <li>项目  Url :<a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    
                </ul>    

<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>

<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>

            </td>    
        </tr>    
    </table>    
</body>    
</html>

四、设置邮件触发机制
云计算(9)—— jekins(2)
上面的几步完成后,点击应用,保存便可。

五、配置Jenkins自带的邮件功能

配置内容以下,和Email Extension Plugin插件一样的配置,能够经过勾选经过发送测试邮件测试配置按钮来测试配置是否成功发送邮件,以下图:
云计算(9)—— jekins(2)

完成上面的系统设置后,点击保存便可。

3、项目配置

在完成系统设置后,还须要给须要构建的项目进行邮件配置。

一、进入项目配置界面

进入新建的项目界面,点击配置按钮,进入系统配置页面:

云计算(9)—— jekins(2)

二、配置构建后操做模块

进入系统配置页面后,点击上方的构建后操做选项,配置内容以下:
云计算(9)—— jekins(2)

进入构建后操做的模块,而后会看到下面的内容,具体的配置信息如图中标注:
云计算(9)—— jekins(2)

接上图:
云计算(9)—— jekins(2)

配置内容默认便可,邮件内容类型能够根据本身的配置选择,收件人列表能够从前面的系统设置中默认收件人选项配置。

4、构建触发邮件测试

以下图,为我收到的测试邮件,邮件内容能够经过系统设置里面进行个性化的配置,可参考我上面的模板,或者自定义便可。
云计算(9)—— jekins(2)

相关文章
相关标签/搜索