NET Core+win10+Jenkins+Gogs+open ssh持续集成
背景
阿里云测试环境一台,带宽1M跟不上,Jenkins安装一个插件耗时很长,于是想在本地搭建Jenkins服务,将生成的安装文件同步到目标服务器上。
技术点有:
win10
:本地环境是win10,测试环境是windown server 2012 R2
NET Core
:部署版本是2.1.1
,部署在IIS
上Jenkins
: 安装jenkins就不介绍了bat
:需要懂一点批处理命令·
Jenkins插件:Gogs plugin
Publish Over SSH
所需插件自行安装
Jeknin配置流程
创建Item
选择Gogs源码地址
这里三个是必填项:仓库地址,登陆凭据,代码分支;
Gogs
是基于Git
的这里和Github
的仓库地址是一样的。
这里需要一个登陆凭证用于拉取代码,提供的凭证类型有很多,有用户名账户、SSH、以及秘钥等,这里选的是用户名和密码凭证:
分支格式就是*/xxxx
,这里用的是develop
构建触发器
这里选择的时候当Gogs
仓库收到push推送的时候触发构建。
如果没有这个选项,需要安装
Gogs plugin
插件
由于Jenkins
是本地搭建的,Gogs
无法将消息推送到,所以使用了内网穿透。
uTools 提供免费的内网穿透,很好用!
效果类似这样:
构建
jenkin
提供的脚本很多,其它的没用过,这里用到是Excute Windows batch command
这个选项
脚本命令如下:
// 清空xxxx文件夹所有文件
rd "%WORKSPACE%\publish\xxxx"
//如果不存在创建文件夹
if not exist "%WORKSPACE%\publish\xxxx" md "%WORKSPACE%\publish\xxxx"
//生成项目打包文件到指定文件夹下
dotnet publish "%WORKSPACE%\xxxx\xxxx\xxxx.csproj" -o "%WORKSPACE%\publish\xxxx"
//当前目录是在%WORKSPACE%下的,需要cd指定具体操作目录
cd publish/xxxx
//这里是将生成的项目文件使用7-zip打包了,所以需要删除上次遗留的压缩文件,不然会将上次打包文件也打包进去
del /a/f/q xxxx.api.zip
//删除webconfig,不想copy到目标服务器上
del /a/f/q web.config
//压缩项目文件
"C:\Program Files\7-Zip\7z.exe" a "xxxx.api.zip" "**"
之所以删除
web.config
,dotnet publish
命令不知道怎么在web.config
下生成相应的环境变量,比如目标环境是Staging
.
构建后操作
构建好发布包后,一般是部署了,拷贝到web服务下。
这里目标服务器是远程不在局域网内,之前使用过很多种方式都没成功,比如:psexec
,net use
命令。最终只有SSH完成部署。
这里的目标服务器是预先配置好的,在jenkins
的系统配置里的SSH 项下:
选择好目标服务后,设置必要的参数:
Transfer Set
需要填写选项:
Source files
:需要拷贝的目标文件Remove prefix
:移除前缀,如果不移除,会在目标服务器将前缀作为目录生成Remote directory
:目标及其需要安装SSH,这里是选择SSH可以操作的远程目录。Exec command
:将文件拷贝到目标机器后,可以执行命令,这里的命令测试时候好像只能执行一条,如果需要批量执行还是填写bat
地址吧。
本文拷贝完成后需要执行停止应用程序池和重启功能,如下:
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"xxx"
"C:\Program Files\7-Zip\7z.exe" x "C:\Users\Administrator\jenkins\xxx.zip" -aoa -o"C:\iis-publish\jenkins\xxx"
C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:"xxx"
ECHO 服务器脚本执行完毕
第二行是7-zip的压缩命令:
x
:后面的参数源压缩文件;-o
:是解压到目标文件夹;-aoa
:是强制覆盖重复的文件;
Tip
"C:\Program Files\7-Zip\7z.exe"
这个命令要加引号,不然出错!为什么这样没搞清楚!stop apppool /apppool.name:"xxx"
命令name后面不能有空格,不然也会出错的!踩过的坑!
参考
NET Core+win10+Jenkins+Gogs+open ssh持续集成的更多相关文章
- NET Core+win10+Jenkins+Github持续集成
本篇和上一篇NET Core+win10+Jenkins+Gogs+open ssh持续集成没什么区别,只不过源码库换成github. 这里有两点不一样的是: 获取的代码的凭证不用用户名和密码用sec ...
- 使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】
背景描述 根据项目需求,现要在团队内部搭建一个统一的打包平台,实现对iOS和Android项目的打包.而且为了方便团队内部的测试包分发,希望在打包完成后能生成一个二维码,体验用户(产品.运营.测试等人 ...
- Jenkins Jenkins结合GIT Maven持续集成环境配置
Jenkins结合GIT Maven持续集成环境配置 by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...
- Docker+Jenkins+Maven+SVN搭建持续集成环境
Docker+Jenkins+Maven+SVN搭建持续集成环境 环境拓扑图(实验项目使用PHP环境) 发布流程图 环境说明 系统:Centos 7.4 x64 Docker版本:18.09.0 Ma ...
- Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上 ...
- Jenkins构建Android项目持续集成之findbugs的使用
Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...
- ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(一)(转载)
本文结构 ASP.NET Core应用程序的构建 ASP.NET Core应用程序容器化所需注意的问题 应用程序的配置信息 端口侦听 ASP.NET Core的容器版本 docker镜像构建上下文(B ...
- 漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃monkey日志
漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃日志 1.APP崩溃率标准 开发或测试app的同学,对于app崩溃肯定非常熟悉,频繁的线上崩溃属 ...
- ASP.NET Core + Docker + Jenkins + gogs + CentOS 从零开始搭建持续集成
为什么不用gitlab? 没有采用gitlab,因为gitlab比较吃配置,至少得2核4G的配置.采用go语言开发的gogs来代替,搭建方便(不到10分钟就能安装完成),资源消耗低,功能也比较强大,也 ...
随机推荐
- Oracle中start with...connect by/start with…connect by prior子句的用法
connect by 是结构化查询中用到的,其基本语法是:select … from tablenamestart with 条件1connect by 条件2where 条件3;例:select * ...
- flask中获取request的参数的方法
request请求总体分为两类: 1.get请求 访问时会在地址栏直接显示参数不安全,且参数大小比较小. 2.post请求 参数不显示在地址栏,一般用户注册.登录都通过post请求完成. flask获 ...
- Share架构的一些心得
个人这些年,从web->system service->app 项目实战,陆陆续续经历的项目很多,自己也数不清.自己也一直对于架构没有明确去给出一个自己的定义描述. 刚好最近一直在flut ...
- 【The type javax.servlet.http.HttpServletRequest cannot be resolved】解决方案
是缺少serverlet的引用库,解决如下 1.工程右键-properties->java build path 2.在java build path的libraries tab页中选择Add ...
- SPSS输出结果如何在word中设置小数点前面显示加0
SPSS输出结果如何在word中设置小数点前面显示加0 在用统计分析软件做SPSS分析时,其输出的结果中,如果是小于1(绝对值)的数,那么会默认输出不带小数点的数值.例如0.362和 -0.141被显 ...
- 常见的网络设备:集线器 hub、网桥、交换机 switch、路由器 router、网关 gateway
Repeater 中继器 Hub 集线器 bridge 网桥 switch 交换机 router 路由器 gateway 网关 网卡 参考资料: do-you-know-the-differences ...
- 深入浅出WPF(Binding篇1)
Binding在业界的使用一直是音译而来的,称为"Binding".Binding的源是逻辑数据对象,目标则是UI层上面的控件对象.数据通过Binding送达UI层,被UI层展示出 ...
- 配置最漂亮的PyCharm界面,Python程序员必备!
高逼格超美的IDE界面,是每个程序员的梦想! 随着人工智能/机器学习的兴起,Python作为一门“漂亮的语言”,再次获得广大程序员的关注.而JetBrains出品的PyCharm无疑是最好用的Pyth ...
- socketpair
与pipe的区别 pipe产生的文件描述符是半双工的,需要pipe两次才能实现全双工,产生的两个描述符是一个读,一个写 socketpair直接就可以全双工,产生的两个文件描述符的任何一个都可读可写 ...
- 用递归方法求n!
题目: 编写一个程序,输入n,求n!(用递归的方式实现). public class test { public static long fac(int n){ if(n<0){ return ...