人世繁华|.Net在Windows上使用Jenkins做CI/CD
背景最近入职了一家新公司 , 公司各个方面都让我非常的满意 , 我也怀着紧张与兴奋的心情入职后 , 在第一天接到了领导给我的第一个任务——把整个项目的依赖引用重新整理并实施项目的CI/CD 。
本篇的重点主要分享这次在Windows平台使用Jenkins做.Net Framework的自动化 , 真是所谓一波N折 。
有关注过我的博客的朋友们 , 应该知道我之前都是在Linux上实施.Net Core , 好不容易把Linux技能点起来 , 现在玩回Windows+.Net Framework感觉有一种回到钻木取火的年代 。
在实施过程中让我感悟最多的是 , dotnet core命令的便捷性 , Linux运维的便捷性 , 下文我有很多构建脚本都是shell脚本来的 , 当时想着学习一次就不需要学习bat脚本了 , 最终还是躲不过 。
在远程传送并远程执行命令我折腾得最久 , 开始想着用FTP与Telnet , 谁知道Telnet命令没有附带账号密码参数 , 脚本不好写 , 后改成PsExec.exe , 使用过程中很多奇怪的问题 , 后来不得不去折腾OpenSSH , 说实话还是SSH好用 , 直接代替了FTP与PsExec 。 中间还遇到Jenkins使用本机账号执行的权限问题 。 所有“坑”的我在下面步骤尽可能给大家规避了 。
引用整理项目(包含所以依赖的项目)依赖引用丢失 , 主要体现以下几点:
- 官方依赖包没有使用NuGet
- 内部项目引用通过本地引用 , 项目没有拉取则编译失败
- NuGet包多个版本的引用
- 同属一个解决方案 , 但是项目分散到各个仓库
- 缺少代码或者代码路径不一致则无法正常编译通过
- 对于新人同事不友好
- 实现CI/CD会有很大的阻力
- 整理组件库到统一解决方案 , 日后有需要拆分再按需拆分 , 优先保证需要依赖的在一个方案 。
- 实现组件库的自动发布到私有Nuget
- 整理API项目的依赖 , 抛弃以前本地依赖的方式 , 统一使用Nuget
- 实现API项目的自动发布到IIS
物理部署图
以上是基本的信息概要 , 下面会进入具体的实施步骤 。
NuGet.Server的部署新建一个ASP.Net Web应用程序(.NetFramework),并选择空模板 , 搜索NuGet.Server选择3.4.1版本安装后 , 打开Web.config文件设置apiKey , 然后就可以部署到47.115.111.58的IIS了 。
官方部署文档可以查看
推荐阅读
- 繁华万里|与中国广东省持平,一月工资到底多少钱?,俄罗斯的经济
- 魔兽世界|魔兽世界应该改名猎人世界?职业平衡槽点满满,都跟风贼法德
- 科学家|亚特兰蒂斯:万年前被海水淹没的古老国度,如今有望重现人世?
- 怪物猎人|怪物猎人世界冰原雷狼龙票怎么获得 票获得方法以及用途的介绍
- 人世繁华|无捆绑、无月租、无套餐的“三无”资费来了,中国电信首开先例
- 我喜欢迈阿密|一生结婚五次共享二人世界,一日三顿酒!,百岁老夫妻深山隐居
- 如来的小窝|43平米一居改两居,时尚温馨舒适宽敞,打造完美二人世界!
- 智能机器人世界首个3D人工眼亮相:完全复制人眼结构、视网膜媲美人类
- 人民日报中央厨房|“预见繁华”东台西溪天仙缘逅海项目招商受追捧
- 人世繁华外国主持人问马云:你眼中的竞争对手是谁?马云回答太霸气
