.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 ...
随机推荐
- videojs使用技巧
1 初始化 Video.js初始化有两种方式. 1.1 标签方式 一种是在<video>标签里面加上class="video-js"和data-setup='{}'属性 ...
- Linux 对音频万能处理的命令——SOX
what's the SOX SoX(即 Sound eXchange)是一个跨平台(Windows,Linux,MacOS 等)的命令行实用程序,可以将各种格式的音频文件转换为需要的 ...
- Java 8之Map新增方法<转>
在Java 8中的Map.Entry接口中增加了comparingByKey, comparingByValue方法,它们都返回Comparator<Map.Entry<K,V>&g ...
- PMP 第5章错题总结
1.工作分解结构是项目团队与相关方之间沟通的有效工具之一2.控制账户是工作分解结构某个层次上的要素,以便与工作包一一对应3.项目范围说明书包括产品范围.产品验收标准.项目可交付成果.项目除外责任,以及 ...
- 1.4 Linux下对lvm逻辑卷分区大小的调整(针对xfs和ext4不同文件系统)
当我们在安装系统的时候,由于没有合理分配分区空间,在后续维护过程中,发现有些分区空间不够使用,而有的分区空间却有很多剩余空间.如果这些分区在装系统的时候使用了lvm(前提是这些分区要是lvm逻辑卷 ...
- DS DI ES SI等等
DS is called data segment register. It points to the segment of the data used by the running program ...
- SpringBoot获得application.properties中数据的几种方式
转:https://blog.csdn.net/qq_27298687/article/details/79033102 SpringBoot获得application.properties中数据的几 ...
- Zookeeper的典型应用场景(转)
在寒假前,完成了Zookeeper系列的前5篇文章,主要是分布式的相关理论,包括CAP,BASE理论,分布式数据一致性算法:2PC,3PC,Paxos算法,Zookeeper的相关基本特性,ZAB协议 ...
- 在local模式下的spark程序打包到集群上运行
一.前期准备 前期的环境准备,在Linux系统下要有Hadoop系统,spark伪分布式或者分布式,具体的教程可以查阅我的这两篇博客: Hadoop2.0伪分布式平台环境搭建 Spark2.4.0伪分 ...
- pyspider 数据存入Mysql--Python3
一.不写入Mysql 以爬取哪儿网为例. 以下为脚本: from pyspider.libs.base_handler import * class Handler(BaseHandler): cra ...