开源项目使用 appveyor 自动构建
我写了几个开源项目,我想要有小伙伴提交的时候自动运行单元测试,自动运行编译,这样可以保证小伙伴提交清真的代码
本文将会告诉大家如何接入 appveyor 自动构建方案,在 Github 上给自己的开源项目进行自动构建
在开源项目可以发现很多都有 appveyor.yml 文件,这个文件就是用来做自动构建的
此时有小伙伴 玩命夜狼 告诉我 “我没写过,但我觉得我能写” 我就吓到了,难道这个文件是需要手写的?我看到 官方文档 发现内容超级多,也就是在开始写之前,我需要学很久?
我可不是一个会学东西的金鱼因为我很快就不记得我看了什么
好在 appveyor 提供了网页配置方案,首先是通过 Github 登陆
在登陆之后点击新建项目
从 Github 上找到自己期望接入的开源项目
在这个页面的右边将会列出你的所有项目,鼠标移动到项目上可以看到 Add 按钮,点击就可以添加
添加完成返回页面,点击对应项目的设置选项,在设置选项里面提供了很多编译的设置,在设置完成之后,可以看到 Export YAML 的标签,在这个标签里面就可以下载 appveyor.yml 文件,也就是说这个配置文件可以不手写,可以在网页上经过配置自动创建
接下来使用我的编码规范工具作为例子告诉大家如何做设置
按照标签提供的方向,一个个进入,第一项是总的配置,一般不需要做更改
第二项是环境,用于配置编译需要的环境,如编译使用的镜像,我默认选择了 VisualStudio 2019 作为镜像。在编译的时候将会通过 Docker 下载 VisualStudio 2019 的镜像,也就是一个 Windows 的系统上包含了 VisualStudio 2019 安装的镜像,将会在这个镜像里面进行编译
在这个环境标签还可以设置编译时的环境变量和 HOST 等
在准备完成了环境,下一步就是 Build 了,在开始选择了自己的项目之后,在自动构建里面将会自动识别这是一个 .NET 的程序,可以使用 msbuild 编译,于是很多预设的配置就已经写好
在 Configuration 上可以配置以什么方式编译,如 DEBUG 还是 RELEASE 编译,在 Platform 上可以选择编译平台,这些选项都支持多选
在 Build 页面最下可以找到编译前执行命令,我使用的是之前版本的 csproj 格式,需要通过 NuGet 命令行还原。此时需要点击添加脚本命令,可以看到提供的脚本有 PowerShell 和 .NET Core 版本的 PowerShell 和 Cmd 等脚本方式,我这里选择使用 Cmd 脚本
在使用的 VisualStudio 2019 镜像已经添加了很多环境变量和安装了很多程序,这里可以直接写 NuGet 而不需要先下载
其他的配置项都是不重要的,小伙伴可以自己去玩一下
在设置完成之后,点击 Export YAML 页面,可以下载刚才的配置,将下载的配置放在自己仓库的根文件夹,然后提交到 Github 上,返回 Current build 页面,可以看到正在编译
自动构建完成是不是需要和小伙伴炫耀一下?在 ci.appveyor.com 提供了好看的图标,可以用来放在项目的首页
点击设置在 Badges 页面将 markdown code 复制放在自己开源项目的首页文档里面,这样就可以看到下图效果
嗯,上图是因为我写了逗比代码,没有编译成功。小伙伴一看这个项目就知道这个项目的作者是不是逗比了,一个编译不通过的项目都敢放在这
还是回到主题,通过自动构建可以在每次提交和修改的时候自动跑一下编译,因为有些小伙伴会在提交的时候忘记添加一些文件,或者依赖自己本地的某些文件才能编译成功,此时提交上去将会编译不通过。在提交的时候自动构建,可以快速告诉开发当前的提交是否会让项目编译不通过,在刚做出逗比代码的时候发现是哪里逗比需要的时间很短,这样会比我随意提交一些代码到仓库,然后其他小伙伴拉代码发现编译不通过时需要找到逗比代码的时间短很多
对于复杂项目需要定制的,还是需要阅读稳定自己写配置。另外 ci.appveyor.com 不仅提供给开源项目的自动构建,还可以购买本地版部署在自己的服务器
本文提到的 玩命夜狼 是在做 The complete WPF tutorial 文档翻译的大佬,这部分文章很适合新手入门
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
参见:http://www.cnblogs.com/xjt927/p/5317678.html
开源项目使用 appveyor 自动构建的更多相关文章
- 米扑科技的开源项目:sitemap-php 自动生成网站地图
米扑科技旗下的产品,近期正在做SEO网站优化,其中子需求之一是调研实现了网站地图(sitemap.xml) 封装简化了许多功能模块,现在分享出来,源代码可在Github上下载,有简单的示例. Gith ...
- 用gulp打包带参数资源做法与asp.net/java项目结合的自动构建方案探讨
先探讨方案,后续再实现. gulp打包前端教程配置:http://www.cnblogs.com/EasonJim/p/6209951.html 可能存在以下场景: 1.整个服务端采用接口的形式暴露给 ...
- 2019-6-23-开源项目使用-appveyor-自动构建
title author date CreateTime categories 开源项目使用 appveyor 自动构建 lindexi 2019-06-23 11:47:40 +0800 2019- ...
- 开源项目福利-github开源项目免费使用Azure PipeLine
微软收购Github后,很多人猜想微软可能会砍掉VSTS,然而事实VSTS并没有砍掉,关于Azure Devops的详细信息可以查看 这篇博客,如果想查看原文也可以从链接里提供的原始地址里查看. 今天 ...
- GitHub上线Trending功能,帮你轻松找到有潜力的开源项目
转自:http://www.csdn.net/article/2013-08-14/2816574-Github-Trending-Open-Source-Project Github开源项目 摘要: ...
- 小伙伴想学Jenkins自动构建发布项目,我:安排上了!!
写在前面 趁着十一长假,很多小伙伴都在悄悄学习,有些是为了能够顺利通过面试,进入大厂升职加薪.有些则是为了进一步巩固和提高自己的专业技能,希望有朝一日能过成为互联网架构师乃至技术专家.这不,就有小伙伴 ...
- Windows Server配置Jenkins,实现监测SVN提交自动构建.net4.5的项目
1,持续集成 概念:http://baike.baidu.com/view/5253255.htm,对于大多数人而言,自动构建/自动测试/自动部署,已经很发挥它的价值了.选择上: 推荐jenkins, ...
- 用Ant实现Java项目的自动构建和部署
原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml 本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...
- Yeoman自动构建js项目
Aug 19, 2013 Tags: bowergruntJavascriptjsnodejsyeomanyo Comments: 10 Comments Yeoman自动构建js项目 从零开始nod ...
随机推荐
- 关于iOS7的一切相关的资料
http://www.cocoachina.com/special/ios7/ PreviousNext 作为的用户,您可能需要了解 WWDC大会以及iOS 7的新界面 CocoaChina WWDC ...
- R语言与非参数统计(核密度估计)
R语言与非参数统计(核密度估计) 核密度估计是在概率论中用来估计未知的密度函数,属于非参数检验方法之一,由Rosenblatt (1955)和Emanuel Parzen(1962)提出,又名Parz ...
- C++:static类
static自我理解 static使得数据成员或者函数生命周期为整个文件所在程序的生命周期, 在C中还可以用它避免被其它文件使用为外部成员 static类 明确:类的静态数据成员它被所有类对象共享,但 ...
- No.1 Verilog HDL简介
硬件描述语言HDL(Hardware Description Language)是一种用形式化方法来描述数字电路和系统的语言.设计者利用HDL可以从抽象到具体逐层描述自己的设计思想,用一系列的分 ...
- oracle-Mount
执行nomount的所有工作,另外附加数据结构并与这些数据结构进行交互.这时,oracle从控制文件中获得信息. 可以执行的任务是: 执行数据库的完全恢复操作 重命名数据文件 改变数据库的归档状态. ...
- 2016中国银行Top100榜单发布 工行排首位
2016中国银行Top100榜单发布 工行排首位 2016-07-09 15:13:19 第一财经 2016年7月8日,中国银行业协会在京召开“<中国银行业发展报告(2016)>发布会 ...
- 【JZOJ1922】【Usaco 2005 NOV Gold】小行星群
题目描述 Bessie想驾驶她的飞船穿过危险的小行星群,小行星群是一个N×N的网格(1 <= N <= 500),在网格内有K个小行星(1 <= K <= 10,000). 幸 ...
- spring调试
spring-beans DefaultListableBeanFactory preInstantiateSingletons:650 RequestMappingHandlerMapping Ab ...
- spring-data-jpa实体类继承抽象类如何映射父类的属性到数据库
在抽象父类上加上注解@MappedSuperclass @MappedSuperclass public class Pet { private Integer id;//id private Str ...
- iOS:学习runtime的理解和心得
http://www.cocoachina.com/ios/20150901/13173.html 作者:兴宇是谁 授权本站转载. Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门 ...