航行金税盘

This article was sponsored by Codeship. Thank you for supporting the sponsors who make SitePoint possible.

本文由Codeship赞助。 感谢您支持使SitePoint成为可能的赞助商。

Ahoy, matey! Looks like you’re one of our ilk, a navigator of the beautiful and treacherous seas of software development. We of the SitePoint fleet are always keen to meet another software sailor. Today, we have a special treat for our fellow travelers of the briny deep. The sea folk at Codeship (Codeshippers!) have created a new way to navigate the waters of Continuous Integration and Delivery. One that may be as significant as any development since dedicated unit-testing fleets. It’s called ParallelCI and it will make your ships' jouneys shorter and faster.

嗨,老兄! 看来您是我们其中的一员,是在美丽而诡reach的软件开发海洋中的导航者。 我们SitePoint机队始终渴望与另一位软件水手见面。 今天,我们为深深的同伴旅行者提供了特殊待遇。 Codeship的海上员工 (Codeshippers!)创建了一种新的方式来导航持续集成和交付的水域。 自专用的单元测试车队以来,这可能与任何开发一样重要。 它被称为ParallelCI,它将使您的船只的航行时间更短,更快。

一点软件时代的历史 (A Little Software-itime History)

There’s a great chance that you are using some kind of Continuous Integration and Delivery platform. Codeship is “Continuous Delivery Made Simple”. If you don’t know what Continuous Integration and Delivery means, SitePoint and Codeship have you covered:

您很有可能正在使用某种持续集成和交付平台。 代码是“连续交付变得简单”。 如果您不知道持续集成和交付意味着什么,SitePoint和Codeship涵盖了:

  • We’ve written about Continuous Integration and Continuous Delivery.

    我们已经撰写了有关持续集成和持续交付的文章 。

  • We’ve also covered Continuous Deployment where you can automatically deploy successful builds to your production environment. Codeship supports many PaaS offerings, including Heroku and AWS.

    我们还介绍了持续部署 ,您可以在其中将成功的构建自动部署到生产环境中。 Codeship支持许多PaaS产品,包括Heroku和AWS。

  • Codeshipper Manuel Weiss gives a crash course in continuous delivery.

    Codeshipper Manuel Weiss在连续交付中提供速成课程 。

The seas of software are ever-changing. Platforms like Codeship enable your fleet to adjust to changes in the weather. Read the aforementioned scrolls (linked articles) to learn how Codeship can turn your haggard crew into a powerful armada. Then, come back here to read about their latest navigational offering.

软件的海洋日新月异。 诸如Codeship之类的平台使您的舰队能够适应天气的变化。 阅读上述卷轴(链接的文章),以了解Codeship如何将您的ha舰队变成强大的舰队。 然后,回到这里阅读有关其最新导航产品的信息。

ParallelCI:更快地覆盖测试区域 (ParallelCI: Cover the Testing Territory Faster)

It is possible to run your voyages (builds) in parallel. There are legends of previous explorers sending mulitple ships in multiple different directions to cover the most territory and find the best route as quickly as possible. Before today, this was a very difficult undertaking. Someone would have to create each course (VM), repeating arduous setup and prepartion, and ensure that the courses didn’t cover the same territory. In most cases, the setup was too difficult and the course too expensive, leaving you between a rock and a hardplace. As such, one ship is used to travel all territories.

可以并行运行航行(构建)。 有以前的探险家的传说,他们向多个不同的方向发送多艘船,以覆盖大部分领土,并尽快找到最佳路线。 在今天之前,这是一项非常艰巨的任务。 有人必须创建每个课程(VM),重复艰苦的设置和准备工作,并确保课程不覆盖同一地区。 在大多数情况下,设置太困难,路线太昂贵,使您陷入困境。 因此,一艘船被用来穿越所有领土。

With ParallelCI, a new offering from Codeship, it is now trivial to create a new course, called a "pipeline". Each pipeline gets the same setup, but then can travel its own course (run its own commands). Now, you can easily break up the Testing Territory into smaller routes, allows each pipeline to sail through less waters. Ultimately, your fleet (software) arrives at its destination (The coveted lands of Deploymentistan) much faster.

有了Codeship的新产品ParallelCI,现在创建一条称为“管道”的新课程就变得微不足道了。 每个管道都具有相同的设置,但随后可以走自己的路线(运行自己的命令)。 现在,您可以轻松地将“测试区域”分解成更小的路线,从而使每条管道都能在更少的水域中航行。 最终,您的舰队(软件)以更快的速度到达目的地(梦ist以求的部署国)。

准备航行 (Preparing the Voyages)

注册Codeship (Sign up for Codeship)

Since we’re experienced navigators, we’re going to sign up via Github. If your ships are in port elsewhere, you can sign up with Bitbucket or plain email. Github will ask you to allow Codeship to access your ports (repositories) and then greet you with a proper maritime greeting:

由于我们是经验丰富的导航员,因此我们将通过Github进行注册。 如果您的船舶在其他地方的港口,则可以使用Bitbucket或普通电子邮件进行注册。 Github将要求您允许Codeship访问您的端口(存储库),然后以适当的海上问候向您打招呼:

选择舰队 (Choose a Fleet)

Click on the giant green button to create your first project. Captain Mo joins your crew to help prepare you for your first voyage.

单击绿色巨型按钮创建您的第一个项目。 莫船长和您的船员一起为您的第一次航行做好准备。

Click on the port (repository hub) where your fleet is docked, in this case, the Octocat (There’s a legend telling of Octocat as a Goddess of Software Ports):

单击您的船队停靠的端口(存储中心),在本例中为Octocat(有传说说Octocat是软件端口的女神):

A list of your fleets (repositories) will be displayed.

将显示您的舰队(存储库)列表。

In our example today, I only have a single fleet called Discourse. Discourse is an open source, large fleet that runs on Rails, a very popular manufacturer of fleets. I wanted to use a fleet that is large and has many tests (Discourse has over 4000), so I forked their fleet.

在今天的示例中,我只有一个名为Discourse的舰队。 Discourse是一个开源的大型车队,在非常受欢迎的车队制造商Rails上运行。 我想使用一个大型且经过多次测试的车队(话语已超过4000),所以我分叉了他们的车队。

绘制课程 (Plot Your Course)

Caption Mo now takes us to the main navigational area of our trip with Codeship:

Caption Mo现在通过Codeship带我们前往旅行的主要导航区域:

First things first, each voyage will require similar setup commands and tasks. As leader of your trip, you can type in any setup command you require and it will be executed by Codeship’s swabs. Lucky for us, our fleet runs on Rails. Codeship already has common setup tasks for well-known frameworks, like Rails:

首先,每次航行都需要类似的设置命令和任务。 作为行程的负责人,您可以键入所需的任何设置命令,该命令将由Codeship的棉签执行。 对我们来说幸运的是,我们的机队在Rails上运行。 Codeship已经具有针对知名框架(如Rails)的常见设置任务:

Choosing Rails from the dropdown populates both the “Modify your Setup Commands” and “Modify your Test Commands” boxes. Being an experienced navigator, I know that the Discourse fleet needs a bit of a different setup, so I make my modifications:

从下拉列表中选择Rails会同时填充“修改设置命令”和“修改测试命令”框。 作为一名经验丰富的导航员,我知道Discourse团队需要一些不同的设置,因此我进行了以下修改:

The setup is the easy part. When we sail into testing waters with Codeship and ParallelCI, that is where the new territories lie. Codeship has suggested that we run bundle exec rake as our Test Command, which I know to change to bundle exec rake spec for Discourse. However, this will take the same, old route through testing. Discourse is a mature fleet that travels through specific testing seas, so we’ll want to do some custom navigation to make the trip as short as possible.

设置是容易的部分。 当我们使用Codeship和ParallelCI进入测试水域时,这就是新领域所在。 Codeship建议我们将bundle exec rake作为我们的Test Command运行,我知道可以更改为Discourse的bundle exec rake spec 。 但是,这将通过相同的旧路线进行测试。 话语是一支经过特定测试海域航行的成熟舰队,因此我们希望进行一些自定义导航,以使旅行尽可能短。

Here are the testing waters that Discourse travels:

以下是“话语”所经过的测试水域:

Some of these waters are vast, such as components, controllers, and models. Other seas are easily navigated, such as helpers and integrity. My navigational experience tells me that the larger seas will get a dedicated ship (pipeline), while several of the less treacherous waters can be grouped together and covered by one ship.

其中一些水域很广阔,例如组件控制器模型 。 其他海洋也很容易航行,例如助手正直 。 我的航行经验告诉我,较大的海洋将拥有一艘专用的船(管道),而一些不太危险的水域可以归为一类,并由一艘船覆盖。

Also, as an old seadog, I know we’ll want to know how long the traditional, single ship approach takes. That way, we can benchmark the new way and quantify our gains. Benchmarking is foundational to successful seafaring.

另外,作为一个古老的海狗,我知道我们想知道传统的单舰方法需要多长时间。 这样,我们就可以对新方法进行基准测试并量化收益。 基准测试是成功航海的基础。

During my test run in local development waters (my development machine), I had to flip the hourglass 11 times (so, 11 minutes) during the test voyage. Navigating using Codeship with just a single ship, the test waters were traversed in just over 5 hourglasses.

在本地开发水域(我的开发机)中进行测试的过程中,我在测试航行期间必须将沙漏翻转11次(即11分钟)。 仅使用一艘船就可以使用Codeship航行,测试水域仅经过了5个沙漏。

Now, time to split the test seas into pipelines. Adding a new pipeline is a easier than swabbing the deck. Simply click the “+ add new pipleline” link and you’ll be prompted to name the pipeline:

现在,是时候将测试海划分为管道了。 添加新管道比擦拭甲板更容易。 只需单击“ +添加新的管道”链接,系统将提示您命名管道:

The generous folks at Codeship allow us to create up to 10 pipelines, but the actual number allowed will be based on your account level when the feature is out of beta.

Codeship的慷慨人员允许我们创建多达10个管道,但是当功能未通过Beta测试时,允许的实际数量将取决于您的帐户级别。

You can see the ships I have created here:

您可以在这里查看我创建的船只:

With our navigational routes all planned out, it’s time to hit the high seas! A voyage is launched by pushing a change to the fleet (repository). A simple change to the README (which I can edit on Github directly) will do it. Anchors aweigh!

我们的航行路线都已计划好,是时候出发了! 通过将更改推送到船队(存储库)来启动航行。 对自述文件(可以直接在Github上直接进行编辑)的简单更改就可以做到。 锚定了!

Now that I have a new change, the project page (click on the project name in the upper-left corner of Codeship) shows a new voyage underway:

现在,我有了一个新的更改,项目页面(单击Codeship左上角的项目名称)显示了正在进行的新航行:

Back here in port, it’s now a matter of walking the widow’s walk and waiting. Looking at the voyage we can see each of our ships navigating its specified route. As each ship returns to port, you’ll see an indicator on the build dashboard. When they’re all back in, the build is done.

回到港口,现在是走寡妇的步行并等待的问题。 观察航程,我们可以看到我们的每艘船都在导航其指定的路线。 每艘船返回港口时,您会在构建仪表板上看到一个指示器。 当他们全部回来后,构建就完成了。

When all the ships are back in port (meaning, they’re green), our voyage is at an end:

当所有的船都返回港口(意思是,它们是绿色的)时,我们的航程就结束了:

So, how’d we do? It looks like we cut our time at sea by more than half!

那么,我们怎么办? 看来我们在海上的时间减少了一半以上!

That is incredible. With the blunt instrument of simply assigning a pipeline for each spec folder, we doubled how fast we can get to our deployment destination. HIP! HIP! HORRAY! Rum for everyone!

这是令人难以置信。 通过简单地为每个spec文件夹分配管道的工具,我们将到达部署目标的速度提高了一倍。 嘻哈! 嘻哈! 好极了! RUM给大家!

有关部署的注意事项 (A Note About Deployment)

Once a build has multiple test pipelines it uses multiple virtual machines (VMs) to complete a successful build. As a result, deployment cannot happen until all test pipelines pass successfully. The Codeship UI will give a visual separation of the multiple test VMs and the Deployment step in this case. An example will help:

构建具有多个测试管道后,它将使用多个虚拟机(VM)完成成功的构建。 结果,只有在所有测试管道成功通过后才能进行部署。 在这种情况下,Codeship UI将可视化地分离出多个测试VM和“部署”步骤。 一个例子将帮助:

As you can see in the screenshot, the "Deploying" step runs the actual deployment commands after all the test commands have completed. You can see more about this in this video by Codeship.

从屏幕截图中可以看到,“ Deploying”步骤在所有测试命令完成后运行实际的部署命令。 您可以在Codeship的此视频中看到有关此内容的更多信息。

结论 (Conclusion)

ParallelCI is a simple yet very useful addition to the Codeship offering. While the navigational routes we used today were a bit blunt (a pipeline for each spec folder), I am sure you can imagine smarter ways to split up your tests. For example, using something like the parallel_tests gem and it’s —only-group parameter, the specs could be split up based on size.

ParallelCI是Codeship产品的简单但非常有用的补充。 尽管我们今天使用的导航路线有些钝(每个spec文件夹都有一条管道),但我敢肯定,您可以想象出更聪明的方法来拆分测试。 例如,使用parallel_tests gem之类的东西和—only-group参数,可以根据大小拆分规格。

Regardless of how you do it, using ParallelCI will reduce your test execution time and give you more time to focus on shipping features. As shipping magnate Aristotle Onassis once said “We must free ourselves of the hope that the sea will ever rest. We must learn to sail in high winds.” Codeship helps you learn to do just that.

不管您如何执行,使用ParallelCI都会减少测试执行时间,并使您有更多时间专注于交付功能。 正如运输业大亨亚里斯多德·奥纳西斯(Aristotle Onassis)所说:“我们必须摆脱希望海洋永远安息的希望。 我们必须学会在大风中航行。” Codeship可以帮助您学习做到这一点。

Codeship offers 100 builds/month and 5 private projects for free to get started easily and without risk, so only a scalawag would put off signing up any longer. Also, the sailors at Codeship are constantly discussing new navigational techniques on their blog. Bon voyage, my maritime friend. Head over to Codeship and give ParallelCI a try now.

Codeship每月免费提供100个构建版本和5个私人项目,可让您轻松上手且没有风险,因此只有scalawag才会推迟签约。 此外,Codeship的水手们还在他们的博客上不断讨论新的导航技术。 一路顺风,我的海上朋友。 前往Codeship并立即尝试ParallelCI 。

翻译自: https://www.sitepoint.com/sailing-parallel-seas-codeship/

航行金税盘

航行金税盘_使用Codeship在平行海中航行相关推荐

  1. 航行金税盘_通过陌生事物的情感进行统计好奇心航行

    航行金税盘 by Jordan Dworkin 通过乔丹德沃金 通过陌生事物的情感进行统计好奇心航行 (A Statistical Curiosity Voyage Through the Emoti ...

  2. 从金蝶k3到金税盘_金蝶K3操作流程图详解

    目录 一.流程图符号说明: ______________________________________________ 3 二. K/3 系统基础操作流程图: ___________________ ...

  3. 从金蝶k3到金税盘_请问金碟K3财务软件具体操作流程?

    一.新建帐套 操作流程:服务器电脑--开始--程序--K3中间层--帐套管理-新建按钮(白纸按钮) 注意点:帐套号.帐套名不能重复但可修改,但帐套类型不可更改 二.设置参数和启用帐套 操作流程:服务器 ...

  4. 从金蝶k3到金税盘_经典全套金蝶K3操作流程大全

    -结帐-期末结帐 注意点: 不能结帐的原因: (1)有未过帐的凭证(2)无权限(3)其他子系统未结帐(4)与其他用户冲突 八.套打 1.套打格式 凭证:*上海TR101记帐凭证 上海TR102收款凭证 ...

  5. csv格式用什么打开可以编辑_如何用EXCEL/WPS整理航信版(金税盘/白盘)客户(商品)编码表...

    企业开票人员在使用金税盘开票软件,客户编码保存或者自动保存的越来越多就很混乱,那么如何快速的把客户编码整理好呢? 本文就以WPS为例教大家整理客户编码. 1. 导出客户编码 依次点击:系统设置 - 客 ...

  6. 金税盘怎么安装在电脑上_金税盘怎么安装,电脑重装后怎样安装金税盘税控开票软件?...

    金税盘是税务部门为了报税方便而进化出来的一个系统.通过金税盘可以开票.抄税.清卡.领购发票.金税盘使用增值税防伪税控系统,可开具增值税专用发票和增值税普通发票,一般的企业或个体商铺纳税人需要用到.第一 ...

  7. 金税盘怎么安装在电脑上_金税盘处于锁死期不能开票怎么办?

    金税盘俗称白盘是从国税局购买,配合开票软件,进行开具发票的一种税控设备.企业使用金税盘开具发票的时候,如果出现某些操作或使用上的问题,就会无法开具发票,比如,金税盘处于锁死期,那遇到这种情况怎么办?下 ...

  8. 原创-VBA金税盘开票XML生成

    '2017-11-24 20:05 乔治 '原创代码,转载请注明出处 Option Explicit Public Type SE     S As Integer     E As Integer ...

  9. 金税盘 USB无法识别的解决方法、金税盘插上电脑没反应、航天信息

    新买了一台华硕顽石笔记本,将金税盘连接电脑,金税盘亮绿灯,但是电脑一点反应也没有,设备管理器也找不到这个设备(拔插金税盘时,没有叮咚的提示音,设备管理器也没有刷新). 但是,将金税盘接到其他电脑,可以 ...

最新文章

  1. python 图像压缩后前端解压_Python在后台自动解压各种压缩文件的实现方法
  2. 力扣(LeetCode)刷题,简单题(第25期)
  3. 19-flutter的ListView 和 GridView的使用
  4. 浅析SEO优化怎样打好企业新站优化基础稳步提升排名
  5. 忙里偷闲看了几部片子
  6. 用pip安装tensorflow报错SyntaxError: invalid syntax
  7. 腾讯云数据库团队:MySQL5.7 JSON实现简介
  8. C++笔记-空指针加强、auto自动类型
  9. 操作系统之文件管理:7、文件的系统层次
  10. Linux内核维护工作流程曝光,程序员必须拜读!
  11. SpringBoot(二)
  12. 只会纯硬件,让我有点慌
  13. 查看linux的ubuntu版本,查看Ubuntu版本
  14. 我的世界里 有你还不知道的秘密 边走边学习 且行且珍惜吧
  15. ORGE之GUI Demo
  16. python北京房价预测_《安家》热播,我用Python对北京房价进行了分析,结果……...
  17. 取消改写模式(python)
  18. golang map 获取某个值
  19. 设计一个圆形的类即Circle类。
  20. 我和python的第一次亲密接触

热门文章

  1. 大数据程序员平均薪资25k?
  2. 关于360加固保的使用
  3. LuaJit Trace Compiler剖析
  4. 谭浩强c语言视频教程bt种子,c语言视频教程BT种子文件(谭浩强)
  5. 一日一Shader·天空镜面反射【SS_26】
  6. 如何提升文档编写能力
  7. 阿里云异构计算平台——加速AI深度学习创新
  8. 在Ubuntu下,编译Kernel报错:Makefile:xxx: recipe for target 'xxx' failed
  9. 使用Python三步完成文本到语音的转换
  10. 河海大学计算机考研算法题,河海大学考研真题各专业汇总