栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Jenkins构建状态邮件通知以及Jenkins结合Gitee、Github、Gitlab、SVN自动构建部署

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jenkins构建状态邮件通知以及Jenkins结合Gitee、Github、Gitlab、SVN自动构建部署

Jenkins构建状态邮件通知以及Jenkins结合Gitee、Github、Gitlab、SVN自动构建部署
  • Curl命令触发自动构建
    • 配置构建触发器
    • 获取crumb值
      • 生成API TOKEN
      • 生成crumb值
    • curl命令触发自动构建
      • curl命令说明
      • 执行测试
  • Jenkins构建状态邮件通知
    • 邮箱配置
    • 配置系统管理员的邮箱地址
    • 配置邮件通知
    • 邮件通知测试
    • 对Extended E-mail Notification模块进行配置
    • 项目构建后配置Editable Email Notification
    • 附件发送
  • Gitee通知Jenkins自动构建
    • 安装Gitee插件
    • 配置Gitee
    • 生成API令牌
    • 执行测试
    • 配置
    • Gitee项目配置WebHook
    • 推送测试
  • GitHub通知Jenkins自动构建
    • 配置Access token
    • 配置Jenkins的GitHub
    • 配置SSH
    • 源码管理配置
    • 构建触发器配置
    • 构建环境配置
    • 配置webhook地址
    • 推送测试
  • Gitlab通知Jenkins自动构建
    • 安装gitlab插件
    • 生成Gitlab API令牌
    • 配置访问gitlab的凭据
    • 配置Gitlab
    • 配置构建触发器
    • 源码管理配置
    • 配置Webhooks地址
    • 执行推送测试
  • SVN通知Jenkins自动构建
    • SVN的钩子程序
    • 配置钩子程序
    • 配置源码管理
  • Jenkins pipeline
    • 新建工程
    • 编写pipeline脚本
    • 构建测试
    • 从仓库中读取pipeline脚本
  • Jenkins流水线自动化发布Java项目
    • 新建job
    • 参数化构建
    • 编写Jenkinsfile
    • 传入参数进行构建

Curl命令触发自动构建 配置构建触发器

给Jenkins项目特定的 URL 地址发送请求,并且以请求参数的形式携带一个特定值(身份验证令牌)

例如项目触发地址:JENKINS_URL/job/MyTest/build?token=TOKEN_NAME


注意:需要已登录账号且有相关权限情况下方能访问

请求:http://IP:8080/jenkins/view/all/job/MyTest/build?token=TOKEN_NAMEE将触发Jenkins自动构建

获取crumb值 生成API TOKEN

从用户列表找到需要生成API TOKEN的用户

选择设置进行生成API TOKEN



生成crumb值

访问:http://admin:114f8c536957ba2cebc331e4399a27994c@112.74.96.150:8080/jenkins/crumbIssuer/api/xml生成crumb值

curl命令触发自动构建 curl命令说明

curl 命令发送HTTP请求参数说明:

-X 参数:指定请求方式
-v 参数:显示响应结果
-u 参数:携带用户名:密码
-H 参数:携带请求消息头信息
curl -X post -v -u admin:3219fd02fd0c46c2b84fff9cc0fd730c -H "Jenkins-Crumb:a645f783207695c7e2c0869d10f71e6c86765e56672d917bab3a0dffb3482558" http://IP:8080/jenkins/job/MyTest/build?token=TOKEN_NAME
执行测试

响应结果:

* About to connect() to IP port 8080 (#0)
*   Trying IP...
* Connected to IP (IP) port 8080 (#0)
* Server auth using Basic with user 'admin'
> post /job/MyTest/build?token=TOKEN_NAME HTTP/1.1
> Authorization: Basic YWRtaW46NTIwY2hlbi4u
> User-Agent: curl/7.29.0
> Host: IP:8080
> Accept: *dev']],
            doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [],
            userRemoteConfigs: [[url: 'git@gitee.com:XXX/my-test.git']]])
        }
        stage('maven Build') {
            echo "maven build........."
        }
        stage('deploy') {
            echo "deploy..........."
        }
        stage('test') {
            echo "test..........."
        }
}
构建测试


从仓库中读取pipeline脚本

可以从代码仓库中读取pipeline脚本(把pipeline脚本放在仓库中)之后如果要更改步骤,不需要再更改jenkins的步骤,直接更改文件即可。

在项目根目录下编写Jenkinsfile脚本文件并提交到Git仓库

node {
    def mvnHome
        stage('maven Build') {
            echo "maven build........."
        }
        stage('deploy') {
            echo "deploy..........."
        }
        stage('test') {
            echo "test..........."
        }
}

选择git

脚本路径的配置,一定要和仓库中的路径相一致

Jenkins流水线自动化发布Java项目 新建job

参数化构建

参数化构建就是在构建项目时传入一个参数,该参数可以在JenkinsFile中使用

编写Jenkinsfile

git checkout: 拉取代码,${branch}:使用上数参数构建中的参数

maven build:指定JAVA_HOME,执行Maven清理打包跳过测试阶段

deploy:指定运行环境,判断与目录备份,解压war到指定目录,Kill进程,最后启动tomcat

test:访问服务
node () {
    stage('git checkout') {
        checkout([$class: 'GitSCM', branches: [[name: '${branch}']],
        doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [],
        userRemoteConfigs: [[url: 'git@gitee.XXX/my-test.git']]])
    }
    stage('maven build') {
        sh 'export JAVA_HOME=/usr/local/jdk1.8'
        sh '/usr/local/maven/bin/mvn clean package -Dmaven.test.skip=true'
    }

    stage('deploy') {
        sh '''JENKINS_NODE_COOKIE=dontkillme
        export JAVA_HOME=/usr/local/jdk1.8
        export JRE_HOME=/usr/local/jdk1.8/jre
        TOMCAT_NAME=tomcat
        TOMCAT_HOME=/usr/local/$TOMCAT_NAME
        WWWROOT=$TOMCAT_HOME/webapps/ROOT
        if [ -d $WWWROOT ]; then
        mv $WWWROOT /data/backup/${TOMCAT_NAME}-$(date +"%F_%T")
        fi
        unzip ${WORKSPACE}/target/*.war -d $WWWROOT
        PID=$(ps -ef |grep $TOMCAT_NAME |egrep -v "grep|$$" |awk '{print $2}')
        [ -n "$PID" ] && kill -9 $PID
        /bin/bash $TOMCAT_HOME/bin/startup.sh'''
}

    stage('test') {
        sleep 5
        sh "curl http://IP:8081"
        echo "test success ..."
    }
}
传入参数进行构建


注意:

1.构建阶段错误,参考tomcat/logs/catalina.out日志进行排查

2.编写Jenkinsfile时,Test阶段访问服务需要sleep 5给予一定时间

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/941986.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号