.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 ...
随机推荐
- nanopi的ds18b20温度传感器测试
参考(抄袭)资料在这里 先接线,3.3v,gnd,数据输出脚,我是PG11 vim /boot/armbianEnv.txt overlays=w1-gpio param_w1_pin=PG11 pa ...
- 【Gitlab】宝塔gitlab 修改管理员账号密码
步骤: a. 切换目录:cd /opt/gitlab/bin b.执行 :sudo gitlab-rails console production 命令 开始初始化密码 c.在 irb(main):0 ...
- iOS - 搜索关键字在结果中高亮显示
self.labelContent.attributedText = [self highlightText:self.searchStr inStr:searchModel.eventDesc]; ...
- Python - Django - 中间件 process_request
process_request 函数是中间件在收到 request 请求之后执行的函数 该函数的执行顺序是按照 settings.py 中中间件的配置顺序执行的 如果该函数返回 None,继续执行后面 ...
- jsp标签${fn:contains()}遇到问题记录
在jsp页面要实现这样一个功能,列表的某一列字段要显示的数据,是从后台的一个列表中获取的,数据库里面该列存储的方式是 类似 1,2,3 这样的 主键id数据.显示的时候要根据id显示名称,如果是多个 ...
- VS2015 调试中断点失效或表达式错误的解决办法
题描述:在调试前加了断点,但debug时红色的断点变成透明的圆圈加一个感叹号,执行到该处时也不会停止. 这个问题遇到过几次了,前几次都没怎么注意,有时候是因为复制粘贴了某段代码后就这样了,然后点击撤销 ...
- react 常用组件整理
0.es6语法糖 deptList = deptnameList.filter(item => item.rel ===this.state.thUser.orgId);//返回一个新的数组对象 ...
- 开启和安装Kubernetes k8s 基于Docker For Windows
0.最近发现,Docker For Windows Stable在Enable Kubernetes这个问题上是有Bug的,建议切换到Edge版本,并且采用下文AliyunContainerServi ...
- [转帖]很遗憾,没有一篇文章能讲清楚ZooKeeper
很遗憾,没有一篇文章能讲清楚ZooKeeper https://os.51cto.com/art/201911/606571.htm [51CTO.com原创稿件]互联网时代是信息爆发的时代,信息的高 ...
- 简单的爬虫程序以及使用PYQT进行界面设计(包含源码解析)
由于这个是毕业设计的内容,而且还是跨专业的.爬虫程序肯定是很简单的,就是调用Yahoo的API进行爬取图片.这篇博客主要讲的是基础的界面设计. 放上源码,然后分部解析一下重要的地方.注:flickra ...