Jenkins

Jenkins

‍安装

参考

https://blog.csdn.net/xhmico/article/details/136535498

https://blog.csdn.net/weixin_53742691/article/details/139269989

新版本的jenkins需要jdk11或以上版本

  1. 下载

wget https://get.jenkins.io/war-stable/2.452.3/jenkins.war

  1. 添加启动脚本。指定 Jenkins 的主目录位置和端口,并限制jenkins内存

vi start_jenkins.sh

export JENKINS_HOME=/data/jenkins/data
nohup java -Xms512m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -jar jenkins.war --httpPort=8888 -Duser.language=C.UTF-8 > jenkins.log &
  1. 页面访问,在日志里找到临时密码,先不安装插件
  2. 修改插件源

下载国内的源文件https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-2.452.3/update-center.json,替换updates目录中的default.json文件

  1. 页面-插件管理-高级修改升级站点

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-2.452.3/update-center.json

GitLab集成

  1. 先获取gitlab的token

用户 - Preferences - Access Tokens

填写Token name、过期时间

Select scopes下勾选所有

点击“Create personal access token”按钮

  1. 将生成的token在jenkins中创建

进入jenkins-dashboard-Credentials-add credentials

类型 :GitLab API token

API token:将Gitlab中的token复制过来

ID:任意的名称,便于之后查看

  1. 在Jenkins中新建一个item,选择“Freestyle project”

  2. 选择Github项目并填写URL

  3. 设置源码管理

  4. 设置构建触发器

  5. 将上图中“http://100.86.13.87:8888/project/temp_jmeter”粘贴至GitLab侧-项目-Settings-Webhooks-URL中,勾选Trigger中“Push events”,关闭“Enable SSL verification”,然后点击“Add webhook”

  6. 可以测试是否可以调用成功

  7. 回到jenkins,完成剩余的构建步骤后,点击“保存”即可

  8. 之后每次git项目提交了新的记录,就会自动在jenkins构建

配置发送邮件

参考:https://blog.51cto.com/u_16099219/10191683

1. 在Jenkins - Dashboard - Manage Jenkins - System

[Jenkins Location] 更改Jenkins URL、系统管理员邮件地址

[邮件通知] 配置对应邮箱的smtp信息,注意密码处要填写邮箱那边申请的授权码

  1. 完成后进入项目中,添加“构建后操作-E-mail Notification”,Recipients填写收件人邮箱(空格分隔)

  2. 添加“构建后操作 - Editable Email Notification”,点击“Advanced Settings”,Triggers区域删除默认的,Add Trigger -> Always

  3. 在Content区域中添加以下模板

    <hr/>
    
    (本邮件是程序自动下发的,请勿回复!)<br/><hr/>
    
    项目名称:$PROJECT_NAME<br/><hr/>
    
    构建编号:test_$BUILD_NUMBER<br/><hr/>
    
    git版本号:${GIT_REVISION}<br/><hr/>
    
    构建状态:$BUILD_STATUS<br/><hr/>
    
    触发原因:${CAUSE}<br/><hr/>
    
    构建日志地址:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>
    
    构建地址:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>
    
    变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>
  1. 保存项目即可

 Pipeline

组成

Stage:阶段, 一个 pipline 可以划分为若干个 stage, 每个 stage 都是一个操作步骤,比如 clone 代码、 代码编译、 代码测试和代码部署, 阶段是一个逻辑分组, 可以跨多个 node 执行。
Node:节点, 每个 node 都是一个 jenkins 节点, 可以是 jenkins master 也可以是 jenkins agent, node 是执行 step 的具体服务器。
Step:步骤, step 是 jenkins pipline 最基本的操作单元, 从在服务器创建目录到构建容器镜像, 由各类 Jenkins 插件提供实现, 一个 stage 中可以有多个 step, 例如: sh“ls "

以下为一个实例,获取git项目中的jmeter脚本,执行后将日志通过邮件发送

查看代码
 pipeline {
    agent any
    
    environment {
        GIT_CREDENTIALSID = "这里填写用户在jenkins中创建的凭证id(gitlab的登录用户名、密码)"
        GIT_URL = "http://100.86.xx.xx/test/test_jmeter.git"
    }

    stages {
        
        stage('clean') {
            steps {
                sh 'rm -rf result.jtl jmeter.log'
                echo '==== clean history data finished ===='
            }
        }
        stage('Build') {
            steps {
                git branch: 'main', credentialsId: "${GIT_CREDENTIALSID}", url: "${GIT_URL}"
            }
        }
        stage('Run jmeter') {
            steps {
                sh 'jmeter -n -t test.jmx -l result.jtl -e -o /data/tomcat8/webapps/report'
            }
        }
    }
    post {
        always {
            emailext (
                subject: "Build: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
                body: '''<!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    </head>
    <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
        <table width="95%" cellpadding="20" cellspacing="0" style="font-size: 1pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
            <tr>
                <td><br />
                    <b><font color="#0B610B"><font size="6">构建信息</font></font></b>
                    <hr size="2" width="100%" align="center" /></td>
            </tr>
            <tr>
                <td>
                    <ul>
                    <div style="font-size:15px">
                        <li>构建项目:${PROJECT_NAME}</li>
                        <li>构建结果:<span style="color:red">${BUILD_STATUS}</span></li>
                        <li>构建编号:${BUILD_NUMBER}</li>
                        <li>git版本号:${GIT_REVISION}</li>
                        <li>触发原因:${CAUSE}</li>
                        <li>构建地址:<a href=${BUILD_URL}>${BUILD_URL}</a></li>
                        <li>构建日志:<a href=${BUILD_URL}console>${BUILD_URL}console</a></li>
                        <li>jmeter报告地址:<a href=http://100.86.13.87:8080/report/ target="_blank">打开报告</a></li>
                        <li>变更集:${JELLY_SCRIPT}</li>
                    </div>
                    </ul>
                </td>
            </tr>
        </table></font>
    </body>
    </html>''',
                to: "aaa@xx.com",
                from: "xx@xx.com"
            )
        }
    }
}

 

posted on 2024-07-26 17:32  石墨方  阅读(2)  评论(0编辑  收藏  举报

导航