- 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
- 传入参数进行构建
给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
访问: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脚本放在仓库中)之后如果要更改步骤,不需要再更改jenkins的步骤,直接更改文件即可。
在项目根目录下编写Jenkinsfile脚本文件并提交到Git仓库
node {
def mvnHome
stage('maven Build') {
echo "maven build........."
}
stage('deploy') {
echo "deploy..........."
}
stage('test') {
echo "test..........."
}
}
选择git
脚本路径的配置,一定要和仓库中的路径相一致
编写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给予一定时间



