Jenkins是一个开源软件项目,是基于Java开发的一种持续集成(CI)工具,用于解决持续重复的部署、监控工作;它一个开放易用的软件平台,大大简化软件的持续集成。
安装Jenkins
1.使用docker安装
2.本地下载jenkins的war包
Jenkins download and deployment
这里查看历史版本和对应java版本对应关系
这里我用的是2.346.3版本,对应java8
我把jenkins.war上传的目录是/root/jenkins,编写启动脚本/jenkins.sh
#!/bin/bash
nohup java -jar jenkins.war --httpPort=8085 > /root/jenkins/jenkins.log 2>&1 &
PS:使用java11 安装jenkins 2.431版本,启动报错如下需要安装yum install fontconfig.使用java8安装的jenkins版本后有很多插件装不上,所以重新安装最新版本的jenkins。
启动后查看日志正常。
linux环境配置
jenkins自动部署,本质上就是把代码拉取到服务器,然后打包;再把包发到指定的位置,可能在当前服务器、也可能需要传到远程服务器;最后启动。
1.在jenkins客户端-全局配置中,配置jdk信息
2.配置git
3.配置maven
使用本地git仓库和pipeline构建
本地git仓库地址是/data/myproject
新建一个流水线任务
如果测试用下面的只修改流水线那栏的东西即可
git地址使用本地仓库目录
设置好后进行构建,遇到报错:unable to find Jenkinsfile
所以在git中增加Jenkinsfile文件,内容为
pipeline {
agent any
stages {
stage('Hello') {
steps {
sh 'echo hello,world'
}
}
}
}
再次构建,仍报错:you can allow local checkouts anyway by setting the system property 'hudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT' to true.
由于用的是git本地仓库没有用gitlab,所以报错,需要启动时增加一个属性。
nohup java -Dhudson.plugins.git.GitSCM.ALLOW_LOCAL_CHECKOUT=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration=false -jar jenkins.war --httpPort=8089 > /home/jenkins/jenkins.log 2>&1 &
再次构建,成功
看日志显示,构建过程是从git本地仓库fetch获取内容到这个项目的workspace中,再按照Jenkinsfile中所写的内容构建。
git上传代码后,使用mvn命令打包
如下图,上传了代码后,想要使用mvn clean package 对其打包
刚开始的写法是
pipeline{
agent any
stages{
stage("get code"){
steps{
echo "get code from scm"
}
}
stage("package"){
steps{
sh 'pwd
sh 'cd ./jeecg-boot'
sh 'pwd'
sh 'mvn clean package'
}
}
stage("deploy"){
steps{
echo "deploy packge to node1"
}
}
}
}
构建后会报错,说mvn的时候找不到pom.xml 文件,pwd两次查看的目录都是
/home/jenkins/.jenkins/workspace/gitline
说明每次执行命令的主目录都是/home/jenkins/.jenkins/workspace/gitline,所以要在一条命令中执行
pipeline{
agent any
stages{
stage("get code"){
steps{
echo "get code from scm"
}
}
stage("package"){
steps{
sh 'pwd'
sh 'cd ./jeecg-boot && pwd && mvn clean package -Dmaven.test.skip=true'
}
}
stage("deploy"){
steps{
echo "deploy packge to node1"
}
}
}
}
遇到mvn使用的权限问题,我测试使用root安装的,用jenkins执行的,所以重新给mvn的仓库目录赋权就ok了。
禅道中使用jenkins的流水钱
建一个执行任务编号是1
通过git提交代码,注释为 task #任务号
git commit -m 'task #1 add code '
上传git后中文总显示乱码,需要更改.git隐藏目录下的config文件
增加一个quotepath = false
jenkins部署前端项目
- 安装NodeJS 插件
参考文章:
【精选】Jenkins在Linux环境下的安装与配置,包含遇到的问题以及解决方法_linux jenkins安装与配置_梅西库里RNG的博客-CSDN博客
linux系统部署jenkins详细教程_jenkins安装与配置 linux_理想万岁万万岁的博客-CSDN博客
Linux安装maven指定版本_maven安装哪个版本_无敌小肥007的博客-CSDN博客
(五)devops持续集成开发——jenkins发布一个maven流水线项目_jenkins流水线构建maven项目-CSDN博客