惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
博客园_首页
Microsoft Security Blog
Microsoft Security Blog
Blog — PlanetScale
Blog — PlanetScale
M
MIT News - Artificial intelligence
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
A
About on SuperTechFans
aimingoo的专栏
aimingoo的专栏
V
Visual Studio Blog
Jina AI
Jina AI
N
Netflix TechBlog - Medium
量子位
博客园 - 三生石上(FineUI控件)
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
InfoQ
J
Java Code Geeks
T
Tailwind CSS Blog
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
阮一峰的网络日志
阮一峰的网络日志
Engineering at Meta
Engineering at Meta
腾讯CDC

Dr34m's Blog

I Expect You To Die(我希望你死) 1,2,3 完整中文攻略 Linux换国内源 && docker安装 && 换加速镜像 Vue3 + Element-Plus 极简速查 随笔 pyinstaller打包的程序执行报错Failed to extract xxxx decompression resulted in return code -1 taoSync排除项简易教程 apscheduler的cron配置项 如何在绿联NAS中使用TaoSync同步我的文件到各个网盘 GB28181抓包记录 JS计算字节大小,把字节转换为KB/MB/GB/TB等 在Python中使用onvif管理摄像头,包括设备发现,获取RTSP地址,获取设备信息,截图,云台控制与缩放,设置时间 编写bat脚本实现对vue项目构建并压缩 内网穿透工具frp快速使用 CentOS 7.9 安装基础开发环境jdk redis nacos nginx mysql Pyinstaller 逆向 VUE实现复制与粘贴_获取剪切板内容 Electron + xterm.js + node-pty + vue 实现本地终端 child_process exec 中文乱码 Windows&Linux 解决方法 yum 更新 gcc CentOS安装并使用conda 将fluid主题博客的静态资源由第三方改为本地存储 一个上手即用的通用公众号/小程序/h5/app框架 python批量转化doc到docx SpringBoot单元测试注入空指针 TensorFlow 预测出现NaN的一种可能以及解决方法 随笔 python归一化数据 windows下python安装sasl遇到的问题及解决 将对象List中的某个字段放到新的List中[转载] Python http.server 本地服务支持跨域
svn提交后jenkins自动部署
Dr3@m · 2020-11-13 · via Dr34m's Blog

一、jenkins相关

1.创建SVN专用账号

进入jenkins管理后台,系统管理-管理用户-左边的新建用户,输入相关信息后点击新建用户,假设你创建的账号密码分别是svnsvnpwd

  • 此步骤可以省略,给SVN创建专用账户的好处是可以知道该条部署是由SVN自动部署,还是某人手工部署。

2.命令部署SVN

进入jenkins管理后台,系统管理-Jenkins 命令行接口,在页面第一行点击下载jenkins-cli.jar,并复制到SVN所在服务器的某个目录,例如/home/svn/jenkins-cli.jar,在此之前你的服务器应当已经安装了jdk环境。假设你的jenkins运行在http://127.0.0.1:8080,将要部署的项目名为blog,通过以下命令测试是否可以完成部署。

1
java -jar /home/svn/jenkins-cli.jar -s http://127.0.0.1:8080 -auth svn:svnpwd build blog
  • 注意,此命令需要jenkins使用webSocket,如果你使用不完整的反向代理配置可能导致该方法不可用。

二、SVN相关

1.使用post-commit

进入你的SVN项目目录,例如/home/svn/project,可以看到hooks文件夹,进入该文件夹,复制post-commit.tmpl到当前目录命名为post-commit,并赋予其执行权限

1
chmod +x post-commit

清空里边的内容并编辑如下

1
2
3
4
5
6
7
#!/bin/sh
REPOS="$1"
REV="$2"
source /etc/profile
AUTHOR=$(svnlook author -r $REV $REPOS)
echo $AUTHOR >> /home/svn/project/hooks/user.txt
exit 0

测试提交代码,如果可以看到提交代码的用户名已经打印到/home/svn/project/hooks/user.txt文件中,则说明成功。

  • 提示post-commit hook failed (exit code 255) with no output多半是没有赋予post-commit可执行权限,还有可能下边的原因。我之前没有复制post-commit.tmpl而是选择手动新建了post-commit文件,就一直报错,后来复制post-commit.tmpl就没问题了。

  • 添加source /etc/profile的目的是为了确保jdk环境正常。

2.配置命令自动部署

修改post-commit文件为

1
2
3
4
#!/bin/sh
source /etc/profile
java -jar /home/svn/jenkins-cli.jar -s http://127.0.0.1:8080 -auth svn:svnpwd build blog
exit 0

这样配置只要提交代码就会操作jenkins部署。如果需要指定用户提交代码才部署则可以如下

1
2
3
4
5
6
7
8
9
#!/bin/sh
REPOS="$1"
REV="$2"
source /etc/profile
AUTHOR=$(svnlook author -r $REV $REPOS)
if [ $AUTHOR == admin ];then
java -jar /home/svn/jenkins-cli.jar -s http://127.0.0.1:8080 -auth svn:svnpwd build blog
fi
exit 0