.net core jenkins持续集成




执行 Shell
pwd
ls
echo ${PATH}
whoami
which dotnet
dotnet --info
dotnet --version echo '============================begin restore======================================='
dotnet restore
echo '============================begin build========================================='
#dotnet build -c:Release --no-incremental
rm -rf ${WORKSPACE}/jenkins_publish
mkdir ${WORKSPACE}/jenkins_publish dotnet publish -r centos.7-x64 -c:Release -o ${WORKSPACE}/jenkins_publish #把服务启动脚本拷贝到打包目录
if [ ! -f "${WORKSPACE}/jenkins_publish/project.service" ]; then
touch ${WORKSPACE}/jenkins_publish/project.service
#echo "123" > ${WORKSPACE}/jenkins_publish/project.service
#生成启动服务
echo "[Unit]
Description=.NET Core ProjectService [Service]
WorkingDirectory=/data/dotnet_web/${JOB_NAME}
ExecStart=/usr/bin/dotnet /data/dotnet_web/${JOB_NAME}/Web.dll
Restart=always
RestartSec=10
SyslogIdentifier=ProjectApp
User=root
Environment=ASPNETCORE_ENVIRONMENT=Test [Install]
WantedBy=multi-user.target" > ${WORKSPACE}/jenkins_publish/project.service fi echo '============================发布到服务器=========================================='
#cp -r ${WORKSPACE}/jenkins_publish/* /home/netcore/project/ #创建打包路径,并对当前代码进行打包
if [ ! -d "${WORKSPACE}/tar" ]; then
mkdir -p ${WORKSPACE}/tar
fi #清空tar目录下文件
rm -rf ${WORKSPACE}/tar/${JOB_NAME}-*.tar.gz
cd ${WORKSPACE}/jenkins_publish
tar -zcf ${WORKSPACE}/tar/${JOB_NAME}-${BUILD_ID}.tar.gz ./* --exclude=./tar --exclude=./.git --exclude=./.gitignore
SSH Publishers
#创建项目版本目录
if [ ! -d "/data/release/${JOB_NAME}/${BUILD_ID}" ]; then
mkdir -p /data/release/${JOB_NAME}/${BUILD_ID}
fi
#解压包
tar -zxf /data/release/${JOB_NAME}/${JOB_NAME}-${BUILD_ID}.tar.gz -C /data/release/${JOB_NAME}/${BUILD_ID}/ --exclude=./.git*
#删除压缩包
rm -rf /data/release/${JOB_NAME}/${JOB_NAME}-${BUILD_ID}.tar.gz
#更新web软连接
rm -rf /data/dotnet_web/${JOB_NAME}
ln -sf /data/release/${JOB_NAME}/${BUILD_ID} /data/dotnet_web/${JOB_NAME}
#修改站点属主和权限
chown root:root -R /data/dotnet_web/${JOB_NAME}/
#删除/data/release 下的多余版本目录(默认设置保留2版)
cd /data/release/${JOB_NAME}/
if [ "ls /data/release${JOB_NAME}/ | wc -l" > "${keep_num}" ]; then
ls -lt | awk '{if($9<=("${BUILD_ID}"-"${keep_num}")){print $9}}' | xargs rm -rf
fi
#部署启动服务
if [ ! -f "/usr/lib/systemd/system/project.service" ]; then
cp /data/dotnet_web/${JOB_NAME}/project.service /usr/lib/systemd/system/
fi
systemctl restart project.service
.net core jenkins持续集成的更多相关文章
- .net core Jenkins持续集成Linux、Docker、K8S
jenkins插件 系统管理 -> 管理插件,安装如下插件. #如果搜索不到去掉Plugin在搜索 GitLab Plugin Gitlab Hook Plugin #使用Gitlab账号做用户 ...
- Docker+Jenkins持续集成环境(5): android构建与apk发布
项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ...
- Jenkins持续集成学习-搭建jenkins问题汇总
目录 Jenkins持续集成学习5-搭建jenkins问题汇总 目录 前言 问题列表 nuget还原包问题 编译问题 SVN更新问题 参考文档 Jenkins持续集成学习5-搭建jenkins问题汇总 ...
- Jenkins持续集成学习-Windows环境进行.Net开发1
目录 Jenkins持续集成学习-Windows环境进行.Net开发 目录 前言 目标 使用Jenkins 安装 添加.net环境配置 部署 结语 参考文档 Jenkins持续集成学习-Windows ...
- Jenkins持续集成学习-Windows环境进行.Net开发2
目录 Jenkins持续集成学习-Windows环境进行.Net开发2 目录 前言 目标 使用 .Net Stardard 单元测试 流程 手动执行单元测试 自动执行单元测试 单元测试报告 上传Nug ...
- Jenkins持续集成学习-Windows环境进行.Net开发3
目录 Jenkins持续集成学习-Windows环境进行.Net开发3 目录 前言 目标 优化nuget包生成流程 自动触发构建 Jenkins定时轮询触发 SVN客户端钩子触发 SVN服务器钩子触发 ...
- Jenkins持续集成学习-Windows环境进行.Net开发4
目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...
- Docker+Jenkins持续集成
Docker+Jenkins持续集成 使用etcd+confd实现容器服务注册与发现 前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇 ...
- python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法?
python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法: 原因:因为jenkins是用windows installer 安装成 windo ...
随机推荐
- linux命令(55):环境变量:LIBRARY_PATH 和 LD_LIBRARY_PATH的区别
添加环境变量:https://www.cnblogs.com/lovychen/p/5583703.html PATH是可执行文件的环境变量. LIBRARY_PATH 和 LD_LIBRARY_PA ...
- aardio调用dll
刚知道aardio这个不错的玩具,可惜作者停更了,贴一个调用dll的例子备用吧 vc代码 extern "C" _declspec(dllexport) int _stdcall ...
- (原)关于OpenGL中的几个坐标系统的理解
在我们使用opengl做图像处理的过程中,其中必不可少的基本都会用到顶点着色器和片元着色器. 完整的渲染管线图: 那么在这两个着色器程序中,我们需要绘制我们的图像的时候,他们的坐标和位置对应关系是如何 ...
- 解决IDEA打Jar包找不到或无法加载主类问题
转自以下博主内容:https://blog.csdn.net/qq_43189115/article/details/99856659 就是因为打包一直提示有问题,网上很多帖子试过没有用,就是这个博主 ...
- Elasticsearch学习之集群常见状况处理(干货)
1. 集群健康状况处理 当集群处于yellow或者red状态的时候,整体处理步骤如下: (1) 首先查看集群状态 localhost:/_cluster/health?pretty { "c ...
- (记录问题)1.Canvas.drawArc()方法的问题
先看看异常: 一眼看去就知道说的是方法找不到错误 后面发现是系统版本过低,4.0的系统找不到5.0后添加的方法报的错. 修改后完美解决
- linux 使用 Python 画图工具matplotlib 提示display 错误
import matplotlib.pyplot as plt Traceback (most recent call last): File "<stdin>", l ...
- 【ztree】隐藏显示节点
//显示隐藏的节点 var nodes = zTreeObj.getNodesByParam("isHidden", true); zTreeObj.showNodes(nodes ...
- MYSQL:查询单表中不同邮箱最近一次发送状态
1.联系方式表-customer_contact: id email 1 123456@qq.com 2 987643@qq.com 3 hahaha@qq.com 2.发送邮件记录表-contact ...
- Excel在数据表中悬停鼠标显示数据值
打开一个实例文档,鼠标移动到数据表中,在柱状图上中悬停鼠标,可以看到没有显示数据的值. 鼠标单击左上角的<文件>按钮. 然后单击<选项>按钮. 在弹出的excel选项对话框中单 ...