AppVeyor-良好的持续集成系统令人眼前一亮

All my open source projects building in AppVeyor

Episode 4 (that's from 2006, people, over 8 years ago!) of the Hanselminutes Podcast was on (CI) Continuous Integration. I was deep into CI at a large bank and having a blast. It's just such a joy to have a reliable and repeatable build. Even more so if setting up that build is easy. A good CI build that includes build, test, and deploy means you don't have to fear your code.

Hanselminutes播客的第4集(从2006年开始,是人类,这是8年前!)正在进行(CI)持续集成。 我在一家大银行深深地了解了CI,并大受打击。 拥有可靠且可重复的构建真是太高兴了。 如果建立起来比较容易,那就更是如此。 良好的CI构建(包括构建,测试和部署)意味着您不必担心代码

Back in the day we used Batch Files, dreams, and wishes to setup our CI systems. Later we moved to CruiseControl.NET. Today we've got lots of amazing options, some we can download and setup inside the company, and some hosted that require virtually no effort at all!

过去,我们使用批处理文件,梦想并希望设置CI系统。 后来我们移到CruiseControl.NET。 如今,我们有许多惊人的选择,有些可以在公司内部下载和设置,有些托管几乎不需要任何工作!

Like many of you, I've got a number of utilities and open source projects up on GitHub. Mine are at http://github.com/shanselman, of course.

像你们中的许多人一样,我在GitHub上拥有许多实用程序和开源项目。 我的当然在http://github.com/shanselman

However, some are older, some aren't often built, and honestly I couldn't tell you if they build anymore. Sometimes I'll even accept a Pull Request (PR) without really confirming that there isn't a missing semicolon or a syntax error. Ya, I said it. I haven't been nailed yet, but we all do it, and we know it's bad. A reliable CI system that kicks off a build on a commit is the only way to be sure.

但是,有些是较旧的,有些是不经常建造的,说实话,我无法告诉您是否已经建造了。 有时,我什至会接受“拉取请求”(PR),而没有真正确认没有缺少分号或语法错误。 是的,我说了。 我还没有被钉住,但是我们都做到了,我们知道这很糟糕。 可靠的CI系统可以确保在提交时启动构建。

I decided to revisit AppVeyor as an option for my CI system. I looked at it 18 months ago and it was time to check it out again.

我决定重新访问AppVeyor ,将作为CI系统的一种选择。 我在18个月前看过它,现在该再次检查它了。

Just to be clear, they don't know I'm writing this, I don't know AppVeyor, and I don't do paid reviews. This is all my opinion.

明确地说,他们不知道我在写这篇文章,不知道AppVeyor,也没有付费评论。 这是我的全部意见。

AppVeyor says they "automate building, testing and deployment of .NET applications helping your team to focus on delivering great apps."

AppVeyor表示,他们“自动构建,测试和部署.NET应用程序,从而帮助您的团队专注于交付出色的应用程序。”

Cool. I like automation, I like building, testing and deploying. I'm lazy, as are all good developers, so automated all the things!

凉。 我喜欢自动化,喜欢构建,测试和部署。 我很懒,所有优秀的开发人员也很懒,所以一切都自动化了!

Their pricing is impressive. It's free for unlimited public repositories, which means I can setup a CI build for all my little utilities and open source projects on GitHub. However, their Pro and Premium options are extremely competitive when compared against running my own VM and CI system in Azure for a month. 

他们的价格令人印象深刻。 无限的公共存储库是免费的,这意味着我可以在GitHub上为我所有的小工具和开源项目设置CI构建。 但是,与在Azure中运行我自己的VM和CI系统一个月相比,它们的Pro和Premium选项具有极强的竞争力。

配置 (Setting Up)

I don't want to gush, but it's simple and gorgeous. I signed up with my GitHub creds (and also added BitBucket as I have some stuff there as well) and made a new project. They automatically sucked in my repositories, as well as the ones I have access to from other organizations. I selected a small one, my WiFi Manager for Windows 8, and clicked New Build.

我不想涌出,但它简单而华丽。 我签署了自己的GitHub凭证(并且还添加了BitBucket,因为我在那里也有一些东西)并创建了一个新项目。 他们自动吸进了我的存储库,以及我可以从其他组织访问的存储库。 我选择了一个小版本,即Windows 8的WiFi Manager ,然后单击“新建”。

It cloned my project and started building within a minute. I got an immediate failure, which surprised me.

它克隆了我的项目并在一分钟内开始构建。 我立即失败了,这让我感到惊讶。

Specify the Project

I stared at the error for a moment. Ah, my folder has more than one project or solution. Odd, there's just one project. Ah! But there's a foo.csproj AND a foo.sln.

我凝视了一下错误。 啊,我的文件夹有多个项目或解决方案。 奇怪的是,只有一个项目。 啊! 但是有一个foo.csproj和foo.sln。

Intuitively I go to Settings | Build, and enter the name of my csproj file. By the time I come back to the dashboard it's building again.

凭直觉我去设置| 生成,然后输入我的csproj文件的名称。 等到我回到仪表板时,它又开始建立了。

The build dashboard is at the same time impressive and comforting. It looks like a command prompt in HTML and it updates on its own, so you never feel like you're waiting or wondering what's happening.

同时,构建仪表板令人印象深刻且令人舒适。 它看起来像HTML中的命令提示符,并且会自行更新,因此您永远不会感觉自己在等待或想知道正在发生什么。

Build Success

Amazing, look at that. It worked. I can add tests, and identify artifacts (results of the build) and act on them.

太神奇了,看看那个。 有效。 我可以添加测试,并确定工件(构建结果)并对其进行操作。

Here's my xUnit tests running automatically and their results showing up in the dashboard. Magic.

这是我的xUnit测试自动运行,其结果显示在仪表板上。 魔法。

Tests too!

Here's AppVeyor uploading a build artifact.

这是AppVeyor上传的构建工件。

Found an artifact
One EXE as Artifact

Here I've added an artifact and can download it and run it right from the browser. If your artifacts are NuGet packages, they'll even give you a private NuGet feed for those artifacts that you can use in other projects or automate yourself!

在这里,我添加了一个工件,可以直接从浏览器下载并运行它。 如果您的工件是NuGet软件包,它们甚至会为您提供私有的NuGet供稿,供您在其他项目中使用或自动实现的工件!

Finally you can automate deployment to whatever environment you like. Push to Blob Storage (like I do for myEcho), push to a NuGet server, or Web Deploy.

最后,您可以将部署自动化到所需的任何环境。 推送到Blob存储(就像我对myEcho所做的一样),推送到NuGet服务器或Web部署。

Deploy Anywhere

Impressively, AppVeyor restores NuGet packages as well. It even built a two year old ASP.NET MVC repository of mine on the first try.

令人印象深刻的是,AppVeyor还还原了NuGet软件包。 它甚至在第一次尝试时就建立了一个已有两年历史的ASP.NET MVC存储库

So my open source project builds, now what? Now I add a status badge to my project's ReadMe.md to let everyone who visits my GitHub repository that this is a healthy project that is building successfully!

那么我的开源项目构建了,现在呢? 现在,我在项目的ReadMe.md中添加一个状态徽章,以使所有访问我的GitHub存储库的人都认为这是一个成功构建的健康项目!

Status Badges

It literally took me longer to write this blog post than it did for me to setup Continuous Integration for FOUR open source projects in AppVeyor. Literally about 15 minutes from start to finish.

从字面上看,写这篇博客文章比在AppVeyor中为四个开源项目设置“持续集成”花费的时间更长。 从头到尾大约15分钟。

AppVeyor is really impressive, fun to use, and "just works." It's a great example of Software as a Service and the kinds of software I talked about in my recent post We are abstracting on the shoulders of giants.

AppVeyor确实给人留下深刻的印象,使用起来很有趣,而且“行之有效”。 这是软件即服务以及我最近发表的文章中谈到的各种软件的一个很好的例子。我们正在抽象巨人的肩膀上

With cloud apps like AppVeyor for build/test/deploy, services like like RayGun.io for error management, Trello for products backlogs, FreshDesk for support tickets, there's just so many great choices for a software companies large and small. It's a great time to be writing software.

借助AppVeyor这样的云应用进行构建/测试/部署, RayGun.io这样的服务进行错误管理, Trello进行产品积压, FreshDesk来进行技术支持,对于大小不同的软件公司来说,都有许多不错的选择。 现在是编写软件的好时机。

相关链接 (Related Links)

Sponsor: Big thanks to Mindscape for joining us and sponsoring the blog feed this week! I discovered Raygun.io and started using it for my side project and I LOVE it. Get notified of your software’s bugs as they happen! Raygun.io has error tracking solutions for every major programming language and platform - Start a free trial in under a minute!

赞助商:非常感谢Mindscape加入我们并赞助了本周的博客供稿! 我发现了Raygun.io,并开始将其用于我的副项目,我很喜欢它。 及时获得有关软件错误的通知! Raygun.io具有适用于每种主要编程语言和平台的错误跟踪解决方案-在一分钟之内即可开始免费试用!

翻译自: https://www.hanselman.com/blog/appveyor-a-good-continuous-integration-system-is-a-joy-to-behold

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值