ccruiの博客

ccruiの博客

Jenkins 部署与Github持续集成

6
2023-06-01

Jenkins安装

本教程采用Docker部署Jenkins,安装前请确保服务器上安装了Docker

创建本地目录,用来挂载Docker目录

sudo mkdir -p /opt/jenkins/jenkins_home

更改目录权限,保证Jenkins有权限访问路径

sudo chown -R 1000:1000 /opt/jenkins/jenkins_home

Docker安装Jenkins

docker run -d -v /opt/jenkins/jenkins_home:/var/jenkins_home -p 9304:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:lts-jdk11

浏览器访问 服务器ip:9304 进入Jenkins

初始密码在/opt/jenkins/jenkins_home/secrets/initialAdminPassword中可以找到

选择install suggested plugins,等待安装完毕,如果有安装失败的可以跳过,之后可以手动根据需求安装。

设置完成账号密码后即可登录进入Jenkins主界面

与Github持续集成

Github创建令牌

进入github --> setting --> Personal Access Token --> Generate new token

勾选下面的选项:


出现Token后请注意保存!!

GitHub webhooks 设置

进入需要持续集成的Github仓库 --> setting --> WebHooks&Services --> add webhook --> 输入刚刚部署jenkins的服务器的IP,jenkins地址后加上/github-webhook/

成功如图所示:

jenkins的github配置

安装GitHub Plugin

系统管理-->插件管理-->可选插件

直接安装Github Plugin,jenkins会自动帮你解决其他插件的依赖,直接安装该插件Jenkins会自动帮你安装plain-credentials、Git、credentials、github-api

配置GitHub Plugin

系统管理 --> 系统设置 --> GitHub --> Add GitHub Sever

点击添加凭据,Secret中填写刚才保存好的GithubToken

选择好刚添加的凭据,点击测试链接,成功结果如下:

配置publish-over-ssh

  • 安装publish-over-ssh插件
  • 进入系统管理 -> 系统配置 -> SSH Servers, 设置好name、HostName、UserName、Remote Directory;点高级,根据情况,可以设置密码或者ssh key。其它的无需更改。

创建Jenkins项目

基础设置

Github设置

在凭据中添加你Github的账号密码,Url填写.git地址

URL填写项目地址

设定构建触发器

设定凭据为配置GitHub Plugin一节保存的凭据

构建设置

根据项目需求设置构建命令,这里以vue项目为例

node -v
npm -v
npm i
npm run build
cd dist
rm -rf temporary.tar.gz #删除上次打包生成的压缩文件
tar -zcvf temporary.tar.gz * #把生成的项目打包成test方便传输到远程服务器
cd ../

部署设置

cd /www/wwwroot/testblog.ccrui.cn # 进入到指定目录
find . ! -name 'temporary.tar.gz' -type f -exec rm -f {} + # 删除除temporary.tar.gz之外的所有文件
find . ! -name 'temporary.tar.gz' -type d -exec rm -rf {} + # 删除除temporary.tar.gz之外的所有目录
tar -zxvf temporary.tar.gz # 解压temporary.tar.gz文件到当前目录
rm -rf temporary.tar.gz # 删除temporary.tar.gz文件

完成构建

保存后点击构建

现在在Github上推送项目即可完成自动构建

Maven项目构建示例

.Net项目构建示例