网上有很多相关文章,我这里主要介绍一下关于jenkins执行shell文件鉴权的问题。
项目配置
1. 插件下载
maven相关插件,github相关插件,ssh相关插件。具体的插件名网上都可以找到。如果你没有我下方那些选项,就是因为插件没下载全。
2. 新建项目
选择maven项目,输入名称。
3. 源码管理
选择git, 在Repository URL中输入github项目的ssh地址。
在下方的凭证中选择添加凭证,选择SSH的类型,并在下方将github的私匙添加进去。
在下方的源码库浏览器中选择githubweb,下方url输入与上方Repository URL相同的地址。

4. 构建触发器
勾选 Build whenever a SNAPSHOT dependency is built 以及 GitHub hook trigger for GITScm polling
5. 构建环境

6. 构建后步骤

注意:Jenkins在项目构建完以后会自动将其销毁,设置BUILD_ID即可让其保留。
.sh文件建议用/www/项目名/deploy.sh的方式来存储,方便授权执行。我在这里遇到了许多坑,包括执行权限不够,BUILD_ID不生效,项目仍被销毁等等,用这种方式存储就没有这些问题了。
7. shell文件
主要是为了nohup持久运行项目。
## 杀死原进程
pid=`ps -ef | grep demo-0.0.2-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
## 将生成的jar包转移
rm -f /www/hyapp/demo-0.0.2-SNAPSHOT.jar.jar
cp /var/lib/jenkins/workspace/huya_app/target/demo-0.0.1-SNAPSHOT.jar /www/hyapp/demo-0.0.2-SNAPSHOT.jar.jar
## nohup进程守护启动
export BUILD_ID=dontKillMe
nohup java -jar /www/hyapp/demo-0.0.2-SNAPSHOT.jar.jar --server.port=8082 > /www/hyapp/hyapp.log 2>/www/hyapp/start.log&
至此,项目构建完毕,如果你的github push没有触发相应的构建任务,可以在jenkins任务栏里面点对应项目右侧的小喇叭手动构建。