CICD
Jenkins
使用java开发的
默认端口8080
官网
安装git
== 电脑要先安装git ==
- centOS
sudo yum install git -y
安装
下载成功,是一个jenkins.war
地址:https://www.jenkins.io/zh/download/
linux版
离线安装
-
腾讯云 用docker-compose启动,遇到了,没有git插件
-
如果有各linux发现版安装文档,就跟着操作。
centOS为例
-
执行到第4步,搜一下看有没有war文件
sudo find / -name "jenkins.war" 2>/dev/null
win版
- jdk至少11+
- 官网下载地址:https://www.jenkins.io/download
是msi文件 - 修改端口,不然会和tomcat端口冲突
- 访问jenkins
http://localhost:9527/
- 安装官方推按的插件
估计得科学才能下载
启动
每次开机启动后,端口都是最开始设置那个
命令行(win、linux一样)
1:命令行
1)cmd,CD到jenkins.war所在目录,
2) 执行命令:java -jar jenkins.war
3)在打印控制台中,默认用户amin,会给出登录密码所在文件路径:
4)文件目录:
.exe方式启动(win版)
常见问题
命令行参数
- 示例
# 用下面启动后,访问示例:http://127.0.0.1:9527/abc
--httpPort=9527
--prefix=/abc
- 用docker 运行,才可以添加根路径前缀,
// docker-compose的yml方式
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts-jdk17
user: "root"
ports:
- "8080:8080"
- "50000:50000"
volumes:
- /data/jenkins17:/var/jenkins_home
environment:
# 请求路径前缀
JENKINS_OPTS: "--prefix=/jenkins"
JENKINS_ADMIN_PASSWORD: user123PWD++
INITIAL_ADMIN_PASSWORD: user123PWD++
无法登录
电脑重启,端口为安装时配置那个,命令行启动war包,可以在命令行参数指定端口,默认8080
a:第一次,jenkins会生成一个uuid密码:
b:进去后在表单中自己创建用户,需自己记下来。
1:win系统可以,直接去除认证:
2: 再去,C:\ProgramData\Jenkins.jenkins\users目录把该用户目录和文件删除。
3:kill掉当前进程,在 Jenkins.war 目录 cmd后,java -jar Jenkins.war,此时端口为8080;
4:浏览器访问:http://localhost:8080/ 再输入用户名和密码试一下。
5:还不行就电脑重启,http://localhost:安装端口, 这时应该是不用密码了。
页面没有git
原因:git插件没有安装成功
解决方案:虚拟机中如果同版本有,可以把用户/.jenkins/plugins 插件目录压缩,替换
git地址爆红
- 先 git --version 检查是否没装git
电脑需要安装git,centOS:
# 安装
sudo yum install git -y
# 检查安装是否成功
git --version
私有仓库用密码如何拉取
- 1:安装 Git parameter插件
- 2:在Jenkins的"Manage Jenkins" -> "Credentials"中添加一个新的凭据
- 3:前面创建成功,则Job的配置--Git--Credentials下拉项,应该就多一个选择。
如何实现push代码,jenkins自动构建
gitee
码云文档地址:https://gitee.com/help/articles/4193#article-header0
-
1: jenkins 安装gitee插件
-
2:配置项目gitee的webhook
-
3: gitee该仓库,填写jenkins的url和密码
代码拉去
1:建一个任务
2-1:配置git地址
2-2: 需要密码的话,填好后,需要选中:
下拉为空,则看 常见问题--私有仓库用密码拉取
-
可选-配置密码
如仓库为公共仓库,可跳过
-
手动填写正确分支名
代码打包
1:点击“配置”
2:以脚本方式打包
win就选bat,linux就选shell;
流水线示例
后端示例
点击查看代码
pipeline {
agent {
label 'test-176'
}
stages {
stage('检出') {
steps {
git branch: 'test',credentialsId: '7175b328-a2d4-4c55-ac4a-3b1583ae1502', url: 'http://120.240.8.64:8090/jf/demo.git'
}
}
stage('构建') {
steps {
sh ' /home/jf/data/tool/apache-maven-3.6.3/bin/mvn clean package -Dmaven.test.skip=true'
}
}
stage('停止应用') {
steps {
sh '''#!/bin/bash
PID=$(ps -ef|grep -w jf-server.jar|grep -v grep|awk \'{print $2}\')
if [[ -n $PID ]];then
echo "杀死进程${PID}"
kill -9 $PID
fi
sleep 1
'''
}
}
}
}
前端示例
点击查看代码
pipeline {
agent {
label 'test-176'
}
stages {
stage('检出') {
steps {
git branch: 'test', credentialsId: '7175b328-a2d4-4c55-ac4a-3b1583ae1502', url: 'http://120.240.8.64:8090/lg-group/lg-scrm-web.git'
}
}
stage('构建') {
steps {
sh '''sudo npm run build:test
'''
}
}
stage('部署') {
steps {
sh '''cd ../
sh lg-scrm-web-start.sh'''
}
}
}
}
lg-scrm-web-start.sh具体内容
#!/bin/bash
sudo rm -rf /home/loctek/data/web/lg-scrm-web/*
echo '删除目录/home/loctek/data/web/lg-scrm-web文件'
sudo cp -r /home/loctek/data/jenkins/workspace/workspace/lg-scrm-web-test/dist-pro/* /home/loctek/data/web/lg-scrm-web
echo '将目录lg-crm-web/dist/复制到/home/loctek/data/web/lg-scrm-web'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律