我写了几个开源项目,我想要有小伙伴提交的时候自动运行单元测试,自动运行编译,这样可以保证小伙伴提交清真的代码

本文将会告诉大家如何接入 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 自动构建的更多相关文章

  1. 米扑科技的开源项目:sitemap-php 自动生成网站地图

    米扑科技旗下的产品,近期正在做SEO网站优化,其中子需求之一是调研实现了网站地图(sitemap.xml) 封装简化了许多功能模块,现在分享出来,源代码可在Github上下载,有简单的示例. Gith ...

  2. 用gulp打包带参数资源做法与asp.net/java项目结合的自动构建方案探讨

    先探讨方案,后续再实现. gulp打包前端教程配置:http://www.cnblogs.com/EasonJim/p/6209951.html 可能存在以下场景: 1.整个服务端采用接口的形式暴露给 ...

  3. 2019-6-23-开源项目使用-appveyor-自动构建

    title author date CreateTime categories 开源项目使用 appveyor 自动构建 lindexi 2019-06-23 11:47:40 +0800 2019- ...

  4. 开源项目福利-github开源项目免费使用Azure PipeLine

    微软收购Github后,很多人猜想微软可能会砍掉VSTS,然而事实VSTS并没有砍掉,关于Azure Devops的详细信息可以查看 这篇博客,如果想查看原文也可以从链接里提供的原始地址里查看. 今天 ...

  5. GitHub上线Trending功能,帮你轻松找到有潜力的开源项目

    转自:http://www.csdn.net/article/2013-08-14/2816574-Github-Trending-Open-Source-Project Github开源项目 摘要: ...

  6. 小伙伴想学Jenkins自动构建发布项目,我:安排上了!!

    写在前面 趁着十一长假,很多小伙伴都在悄悄学习,有些是为了能够顺利通过面试,进入大厂升职加薪.有些则是为了进一步巩固和提高自己的专业技能,希望有朝一日能过成为互联网架构师乃至技术专家.这不,就有小伙伴 ...

  7. Windows Server配置Jenkins,实现监测SVN提交自动构建.net4.5的项目

    1,持续集成 概念:http://baike.baidu.com/view/5253255.htm,对于大多数人而言,自动构建/自动测试/自动部署,已经很发挥它的价值了.选择上: 推荐jenkins, ...

  8. 用Ant实现Java项目的自动构建和部署

    原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml         本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...

  9. Yeoman自动构建js项目

    Aug 19, 2013 Tags: bowergruntJavascriptjsnodejsyeomanyo Comments: 10 Comments Yeoman自动构建js项目 从零开始nod ...

随机推荐

  1. PHP核心编程--文件上传(包含多文件上传)

    一.单文件上传 图片上传界面: <!DOCTYPE html> <html lang="en"> <head> <meta charset ...

  2. RapidMiner Studio 入门

    http://docs.rapidminer.com/studio/getting-started/ RapidMiner Studio 入门 FEIFEI MA 2015-12-07RAPIDMIN ...

  3. Thread class vs Runnnable interface(转)

    http://developer.51cto.com/art/201203/321042.htm Thread(Runnable target) Allocates a new Thread obje ...

  4. utf8mb4 使用注意

    数据库的表的定义如果是utf8mb4的富文本时,关联的字段必须指定为非utf8,否则 跟其他的表关联的时候,会非常慢,以至于索引都不能使用. 也就是必须的字段才可以使用这个 utf8mb4 ,否则检索 ...

  5. java 使用poi导出Excel,设置单元格保护不可编辑

    //sheet表加密:等效excel的审阅菜单下的保护工作表 sheet.protectSheet(new String("333"));//333是密码 更多设置请参考:http ...

  6. 跟我一起认识axure(三)

    交互设置,添加链接 点击预览

  7. Linux进程管理(三、 线程)

    // ---- refer glibc, pthread_create.c ----// int __pthread_create_2_0 (newthread, attr, start_routin ...

  8. 在 Linux Mint 19 上安装 zsh 和设置小键盘一步到位

    在 Linux Mint 19 上安装 zsh 和设置小键盘 安装 zsh 并设置 zsh 为默认 shell 安装 sudo apt install zsh 设置 zsh 为默认 shell,注意没 ...

  9. jquery 即点即改

    //在html中建立表单. <table border=""> <th>编号</th> <th>用户名</th> < ...

  10. hihocoder 1586 ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛-题目9 : Minimum【线段树】

    https://hihocoder.com/problemset/problem/1586 线段树操作,原来题并不难..... 当时忽略了一个重要问题,就是ax*ay要最小时,x.y可以相等,那就简单 ...