gitblit+jenkins本地服务

gitblit+jenkins本地服务

本文例子是通过gitblit安装windows环境下的gitlab

  1. 打开gitblit网站下载windows版gitblit
    在这里插入图片描述
  2. 下载完成后解压
    在这里插入图片描述
  3. 解压之后打开data找到defaults.properties文件,这个是gitlab的配置文件
    需要配置:
    git.repositoriesFolder = D:\demo\gitlab 表示仓库路径
    在这里插入图片描述

server.httpPort = 8998 表示端口为8998,默认的0,修改为8998
server.httpBindInterface = 192.168.8.234 服务器IP地址,这里使用的内网地址,也就自己能用,使用内网穿透之后就能在其他地方访问了
server.httpsPort = 0 表示禁用https,默认的8443,修改为0
server.httpsBindInterface = localhost 上面禁用了https这里就不用修改了

  1. 双击gitblit.cmd启动批处理任务
    在这里插入图片描述
  2. 执行成功
    在这里插入图片描述
  3. 通过设定的地址就可以访问了192.168.8.234:8998,默认用户名密码都是 admin
    在这里插入图片描述
  4. 也可以通过同样的方法设置成https协议的地址,那样http请求就会找不到了
    在这里插入图片描述
  5. 设置gitblit以Windows Service方式启动
    1. 目录找到installService.cmd通过notepad打开
    2. 设置SET ARCH=x86
    3. 添加一下路径SET CD = D:\demo\gitblit\gitblit-1.9.1\gitblit-1.9.1
      在这里插入图片描述
    4. 修改StartParams里面的参数,全部删除使用gitblit.properties的配置
  6. 以管理员身份执行installService.cmd,如果没有出错就可以在服务器的服务管理里面找到gitblit服务,如果找不到说明执行出错了,在文件的最后一行添加pause>nul再次执行就不会出现一闪的效果
    如果添加gitblit服务一直不成功,看logs的报错,如果是 “拒绝访问"就修改一下CD路径,全都修改为具体路径,如果是"占位程序接收到错误数据”,就管理员执行命令行,输入sfc /scannow,在修复之后关机,然后再来执行installService.cmd,这时候就能添加gitblit服务了,在搜索里面搜索服务,找到gitblit启动
    如果这时候启动服务报 “windows不能在本地计算机启动gitblit”,就执行uninstallService.cmd(执行前需要把路径修改了),删除服务,然后重新添加服务启动(都要以管理员身份执行),还不行就在添加了gitblit服务之后右键管理员启动,在java里面修改java virtual machine(java虚拟机)的目录,选择你安装的虚拟机(jvm.dll)
    在这里插入图片描述
@REM Install Gitblit as a Windows service.

@REM gitblitw.exe (prunmgr.exe) is a GUI application for monitoring 
@REM and configuring the Gitblit procrun service.
@REM
@REM By default this tool launches the service properties dialog
@REM but it also has some other very useful functionality.
@REM
@REM http://commons.apache.org/daemon/procrun.html

@REM arch = x86, amd64, or ia32
SET ARCH=x86
@REM 如果这里这样写找不到路径,就直接把下面的%CD%替换这个路径
SET CD = D:\Program Files\gitblit-1.9.1

@REM Be careful not to introduce trailing whitespace after the ^ characters.
@REM Use ; or # to separate values in the --StartParams parameter.
"D:\Program Files\gitblit-1.9.1\x86\gitblit.exe"  //IS//gitblit ^
		 --DisplayName="gitblit" ^
		 --Description="a pure Java Git solution" ^
		 --Startup=auto ^
		 --LogPath="D:\Program Files\gitblit-1.9.1\logs" ^
		 --LogLevel=INFO ^
		 --LogPrefix=gitblit ^
		 --StdOutput=auto ^
		 --StdError=auto ^
		 --StartPath="D:\Program Files\gitblit-1.9.1" ^
		 --StartClass=com.gitblit.GitBlitServer ^
		 --StartMethod=main ^
		 --StartParams="" ^
		 --StartMode=jvm ^
		 --StopPath="D:\Program Files\gitblit-1.9.1" ^
		 --StopClass=com.gitblit.GitBlitServer ^
		 --StopMethod=main ^
		 --StopParams="--stop;--baseFolder;D:\demo\gitblit\gitblit-1.9.1\gitblit-1.9.1\data" ^
		 --StopMode=jvm ^
		 --Classpath="D:\Program Files\gitblit-1.9.1\gitblit.jar;D:\Program Files\gitblit-1.9.1\ext\*" ^
		 --Jvm=auto ^
		 --JvmMx=1024
pause>nul
// 如果执行 npm install && npm run start构建成功之后不会停止可以修改为下面语句
npm install && npm run build > /dev/null 2>&1 &
// 也可以不修改成这样,这样就会一直保持在构建中状态,可以直接网页访问项目,也可以使用publish Over ssh来将打包之后的代码放到nginx之中,放到部署服务器里面
  1. 将gitblit和jenkins连接,在push到master代码的时候重新编译jenkins
    首先在gitblit里面的data/groovy文件夹中找到jenkins.groovy文件,复制出来一份,然后把复制出来的一份的 def jenkinsUrl = gitblit.getString(‘groovy.jenkinsServer’, ‘http://yourserver/jenkins’)修改为def jenkinsUrl = gitblit.getString(‘groovy.jenkinsServer’, ‘http://192.168.8.234:8997’)这里是你自己的jenkins地址
    在这里插入图片描述
    然后在gitblit使用admin账号登录,其他的用户可能没有那么高的权限,然后选择你的项目,在编辑中找到receive目录,把下面的post-receive脚本选中上面复制的文件,保存
    在这里插入图片描述
    这里使用node做得后台接口,需要跑一下在jenkins里面安装一下nodejs和gitlab插件,在安装完成之后在配置里面会有
    在这里插入图片描述
    在这里插入图片描述
    选择完成这个之后就可以跑起来了
    这里执行的是npm install && npm run start
    在这里插入图片描述
    执行结束是显示这种
    在这里插入图片描述
    在这里插入图片描述
    可以看到是一直处于执行中状态,这时候是不会停止的,相当于cmd执行起来服务
    这里就已经成功了,在vscode里面上传一下master分支,就会触发请求到jenkins,让其更新,如果出现问题不能触发,可以去gitblit的logs里面看一下请求了什么
    这是成功的
    在这里插入图片描述
    这是失败的(我这里端口号写错了应该是8997的,8998是我本地的gitblit)
    在这里插入图片描述

  2. 我们用postman请求一下写的接口可以看到是可以请求成功的,正常不会这样,正常会在这里执行build,然后下一步通过publish Over ssh插件将打包之后的文件传到服务器去,这里就先不传了,没有服务器,等后面使用钉钉的内网穿透之后再搞,可以使用pm2部署,前端代码传到nginx就可以
    在这里插入图片描述

  3. 这里尝试一下上传代码
    在这里插入图片描述
    上面上传了master代码,底下就多出来一个24,但是因为23还没有执行完,所以24在等待,如果是正常的流程,这里只是build,打包完成之后23就停止了,就会执行24
    在这里插入图片描述
    在这里插入图片描述
    手动停止一下23,就会执行24了
    在这里插入图片描述

  4. 配置publish Over ssh,里面的私钥要使用RSA类型的,配置完成之后点击一下下面的在这里插入图片描述按钮,测试一下连接,因为我的hostname写的自己的电脑,所以会连不上报拒绝连接,这是因为端口号被占用导致的,如果是远程服务器不会出现这个.

在这里插入图片描述
14.因为我所有东西都是安装在本地,所以我在build的时候只要将打包好的文件给复制出去,然后启动服务也是和远程意思一样的
这里没有使用copy命令,使用的robocopy ,因为copy不能copy那么深的目录,在build之后copy一下文件到另一个文件夹(这里的build是使用的webpack打包的,在配置中配置了optimization: {minimize: false },这是因为代码里面有操作数据库的代码,要是最小文件打包会导致连接不上mysql,不知道为什么),然后那个文件夹因为使用pm2启动的服务pm2 start --name 后台接口 bundle.js --watch,所以修改文件会更新
在这里插入图片描述
15.这时候只要master分支有改动,就会触发请求给jenkins让其打包,打包完成之后复制到d盘启动项目,流程就算完成

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值