github开源项目免费使用Azure PipeLine

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

今天要介绍的是做Azure devops的ci部分:Azure Pipeline. VSTS升级到Azure Devops之后对开源开发者带来的重大利好消息就是Github开源项目可以免费,无限时和并行运行10个CI/CD作业.

下面将简要介绍Azure PipeLine以及如何把Azure PipeLine以Github结合,实现自动化构建.

Azure PipeLine简介

PipeLine字面含义是管道,流水线,正如其字面含义.Azure PipeLine可以把一个构建任务拆分成若干部分,然后串联起来构成一个流水线作业.根据具体构建业务不同,一个PipeLine可能只包含一两个步骤,也有可能十几个甚至几十个步骤.Azure PipeLine类似于Jenkins PipeLine,与传统自动构建相比优点在于结构非常清析,构建流水线中的某个环节出现问题很容易定位到(使用过传统Jenkins自由式任务的同学可能会体会到,对于一些复杂的构建任务一旦出现问题,排查起来非常头疼,面对着复杂的控制台输出让人痛不欲生).当然本节并不会介绍非常复杂的构建知识,而是一个入门教程,以供广大开源作者和爱好者快速搭建一个流水线构建.

Azure Pipeline 目前支持Node.js, Python, Java, PHP, Ruby, C/C++, .NET, Android, and iOS,非常令人欣喜的是Azure PipeLine并不需要你具有专业的Devops知识甚至即便你完全不了解Devops也能很方便,快速的搭建一个PipeLine作业.因此,不要犹豫,也不要担心,果断尝试一下.

Azure PipeLine与Github集成,快速搭建一个PipeLine作业.

读者阅读本文可以没有任何自动构建或者Devops开发经验,但是前提必须要有一个Github账户和一个Microsoft账户,这两种账户都可以免费注册,并且也不是很复杂.由于本要已经有账户了,因此后面的教程中都假定是已经登陆了github账户和Microsoft账户.

创建一个Github项目

对于如何在github创建一个项目,这里不再赘述,读者可以查看相关文章或者Github帮助来获得相关方面知识.我这里使用我的github仓库里一个名为 gitShow的.net项目(读者可以上传一个.net项目也可以是支持的其它项目(java,python,nodejs等)到github仓库,不用担心项目类型不一样,我们不需要动手写一行代码便可以利用Azure PipeLine强大的功能创建一个简单的自动构建流水线作业.我的项目结构如下:

640?wx_fmt=png

在Azure Devops里创建一个Azure PipeLine项目

我们在浏览器输入dev.azure.com就会进入azure devops界面

640?wx_fmt=png

如果你没有登陆,看到的界面可能和上面不一样,登陆以后,如果你没有创建任何组织,左边不会有任何组织列表信息,这时候界面会提示你创建一个组织,你也可以点击add organization来创建一个组织,组织相当于一个团队,一个组织里面可以包含若干个项目.

点击左侧的任意一个组织进入组织,我进入的是截图里面的最后一个,当然这无所谓,你可以进入任意一个组织.

这是一个空的组织,页面会提示我们创建一个项目

640?wx_fmt=png

我们输入项目名称,这时候创建项目按钮激活,我们点击它便可以创建一个项目.

过一会一个空的项目就生成了,这时候页面又会提示你创建一个流水线作业

640?wx_fmt=jpeg

点击'New PipeLine'按钮就会进入流水线作业创建页面

此时页面会提示你选择仓库来源,我们选择Github
640?wx_fmt=png

第一个与Github连接会出现授权选择,这里不要点击Authorize,而是点击下面的Install our app from the GitHub Marketplace链接,进入到插件安装页面,这时候会让你选择一个组织,根据你的组织不同,这里出现的内容也不相同,选择一个自己有权限的组织即可

640?wx_fmt=png

点击组织名,进入到仓库选择页面

640?wx_fmt=png

可以选择所有仓库或者是指定仓库,我这里选择的是所有仓库,然后点击'Install'按钮,过数秒后,会进入一个页面让你选择Microsoft账户

640?wx_fmt=png

点击账户名即可

这时候,如果你选择的是所有,则会把所有的github仓库都罗列出来

640?wx_fmt=png

我这里选择GitShow项目,此时Azure Devops平台就会对项目进行智能分析,然后让你选择项目类型(也可能没有这一步,直接进入PipeLine代码界面),这里Azure Devops自动为我们生成了PipeLine 脚本

640?wx_fmt=png

然后我们点击左上角Run按钮运行PipeLine脚本,这一步是等待时间最长的

640?wx_fmt=png

从上图中我们可以看到PipeLine的执行状态,有对勾标识的为已成功执行的步骤,带有三角标识的为当前正在执行的步骤,带有钟表标识的为待执行的步骤.等待所有的步骤标识都变成了对勾,整个PipeLine就执行完成了

如果项目最终构建成功,则会出现一个大的绿色对勾标识整个项目构建成功

640?wx_fmt=png

我们点击其中某个步骤,就可以看到当前步骤构建的详细cli输出信息,类似于Jenkins cli输出

640?wx_fmt=png

在github项目页面显示Azure PipeLine构建状态徽标

如果项目每次构建我们都跳到Azure devops界面去查看,显然太麻烦了,很多时候我们可能只关心构建状态,只要构建成功我们便不再看详细信息,如果失败了再进入构建页面查看构建详细信息.实际上很多开源项目都会有一个构建状态徽标显示在项目页面里,便于直接查看项目的构建状态.下面我们就介绍如何自己的github项目添加一个Azure PipeLine构建状态徽标

640?wx_fmt=png

如上图,我们点击左侧导航栏里的PipeLines按钮,然后点击Builds按钮,出现如下界面

640?wx_fmt=png

我们点击...符号,在弹出的下拉列表里选择Status Badge,出现如下界面

640?wx_fmt=png

最面下是markdown样例链接,我们复制它.然后我们再转到github,打开自己的项目页,然后点击README.md文件进行编辑(如果读者的项目里没有此文件可以添加一个,注意名称必须是README.md,添加非常简单,如果没有github会提示你添加一个,按照提示添加即可),我们把复制的内容添加到README.md

640?wx_fmt=png

然后点击保存,返回到项目首页,就可以看到刚添加的构建状态徽标啦

640?wx_fmt=png

以上状态是实时更新的,我们修改一下源代码,故意制造些错误,待Azure PipeLine构建完成后,显示在Github页面的状态就会更新啦

640?wx_fmt=png

这极大地提升了开源项目的协作效率,如果有用户提交进来代码,代码审阅者可以先看一下构建状态是成功还是失败,如果失败了可以直接让代码提交者先把项目构建成功,然后再提交,减少不必要的重复的手动构建工作.

以上显示状态徽标只是个简单的示例,读者还可以参考其它开源项目的布局,把自己的布局设计的更大方美观

640?wx_fmt=png

由于Azure PipeLine刚刚推出,这里仅仅是进行初步尝试,实际工作中靠自动生成的脚本可能还是远远不够的,需要我们根据自己的项目情况来定制流水线构建方案.但是做为一个开源项目自动构建方案已经够用了.以后有时间会分享更多结合.net 平台的Devops的知识.希望大家多交流,也希望专家大佬们批评指正,多提意见.

原文地址:https://www.cnblogs.com/tylerzhou/p/9806814.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319393.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YbtOJ#752-最优分组【笛卡尔树,线段树】

正题 题目链接:http://www.ybtoj.com.cn/problem/752 题目大意 nnn个人,每个人有cic_ici​和did_idi​分别表示这个人所在的队伍的最少/最多人数。 然后要求将这些人分成编号连续的若干队使得队伍最多,并且求分队方案数。 1≤n≤1061\leq n\leq 10^61≤…

牛客小白月赛 27部分题解

已做BCDEFGJ B.乐团派对 刚开始想了个贪心,结果不对然后直接转头想dp了。 将能力值排序。 首先我们先分出来一组,能力值最大的分出来一组人数是ana_nan​即下标是n−an1→nn-a_n1\to nn−an​1→n分出来一组,目前还剩n−ann-a_nn−an​个人…

如何向微软 Docs 和本地化社区提交翻译贡献

Docs (docs.microsoft.com)是微软新版的文档网站,重新规划了各项技术栈的文档结构,看起来比 MSDN 可读性更好。虽然 Docs 提供了各种语言的版本,但大多是机器翻译,某些中文文档基本读不下去。因此微软鼓励社…

【线段树】生日

题目大意 给你一个序列&#xff0c;让你进行以下操作&#xff1a; 修改一个区间的数查询区间不同数字个数 解题思路 因为数字个数很少&#xff0c;可以直接用bitset存&#xff0c;然后套线段树 code #include<bitset> #include<cstdio> #include<cstring>…

ICPC 2019-2020 North-Western Russia Regional Contest 补题部分

已做A、M&#xff0c;E和H思路已经有了没调AC 已补BEJH 最终已完成ABEJHM B - Bad Treap 大佬题解 感觉这题就很玄学。。。 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #pragma GCC optimize(2) #include<set> #include<map> #include<c…

【dfs】数字

题目大意 给出x&#xff0c;问你不小于x&#xff0c;且由相同个数的4和7组成的最小的数 解题思路 对于奇数位和大于当前位数最大数的直接特判掉 对于其他的dfs枚举&#xff0c;因为如果一个位置放得比原数大&#xff0c;那么后面的都确定了&#xff0c;所以是O(n)的 code #…

【dfs】飞行棋

题目大意 给你一个n*m的网格&#xff0c;现在让你往里面填1~k&#xff08;有的位置已经填了&#xff09;&#xff0c;使其满足所有从(1,1)到(n,m)的路径不会经过相同的数字&#xff08;只能往下或往右&#xff09;&#xff0c;求方案数 解题思路 对于k<nm-1的&#xff0c;…

API测试工具SoapUI Postman对比分析

最近公司要引入API测试工具&#xff0c;经过调查和了解&#xff0c;最终决定在SoapUI 和 Postman两种工具之间做一个选择&#xff0c;两种工具在业界都很有名&#xff0c;相信很多人两种工具也都曾使用过。SoapUISoapUI是一个开源测试工具&#xff0c;通过soap/http来检查、调用…

[POI2008]STA-Station

之前都看过有换根dp&#xff0c;一直不知道是啥意思&#xff0c;本来弱弱树形dp都不太熟悉&#xff0c;不过今天工数课的时候突然想看一下&#xff0c;写个板子题练练吧。 对于我的理解&#xff0c;换根的题目一般是根不确定&#xff0c;而求得答案与根是谁有关&#xff0c;而…

Reports

试题hduoj 题意&#xff1a; 如果相邻的任意两个数相同的话&#xff0c;则输出NO&#xff0c;反之输出YES。 题解&#xff1a; 水题 我队友做的 代码&#xff1a; #include<bits/stdc.h> #define inf 1<<30 #define maxn 200000 using namespace std; int k…

【结论】分肉

题目大意 有两个数x,y&#xff0c;一轮中&#xff0c;如果x≤yx\leq yx≤y&#xff0c;那么xx,y-x&#xff0c;否则x-y,yy&#xff0c;回答经过k轮后较小的数 解题思路 可以发现xy是保持不变的&#xff0c;且x−yx2−x−y,x2>xy(x>y)x-yx\times 2-x-y,x\times 2>xy(…

在 Windows 上可以用 Docker 吗?| 洞见

简介Docker&#xff0c;或者准确一点说&#xff0c;容器技术&#xff0c;在近几年里几乎成为了应用分发和集群部署的默认技术了。背景部分&#xff0c;如果感兴趣&#xff0c;请参考闲谈集群管理模式一文。Docker 生态的成熟还有赖于其周边工具和实践模式的兴起。比如&#xff…

泰勒及洛朗展开学习笔记

2020-1024996 最近太忙了&#xff0c;今天好像没有写题&#xff0c;不过研究了一下数学hh。 2020.10.24今天又有工数课&#xff0c;我又没听&#xff0c;我记得上节工数课我看了换根dp&#xff0c;哦&#xff1f;好吧我没听过工数&#xff0c;那没事了&#xff0c;不过这次不敢…

【结论】串串串(nowcoder 20107-A)

正题 nowcoder 20107-A 题目大意 给你两个01串&#xff0c;有若干询问&#xff0c;每次询问两段长度相等的字串不同位数的奇偶性 解题思路 因为只用判断奇偶性&#xff0c;所以同时修改两个字符是不会改变结果的&#xff0c;那么可以直接将字串修改为只有0/1个1的串&#xf…

SmartSql For Asp.Net Core 最佳实践

常规操作安装 SmartSqlInstall-Package SmartSql安装 SmartSql.DIExtensionInstall-Package SmartSql.DIExtension配置SmartSqlConfig.xml写库&#xff08;Write&#xff09;必选 唯一节点读库&#xff08;Read&#xff09;可选 多节点配置PostgresqlPostgresql 客户端 NpgsqlI…

矩阵乘法学习记录

这要从校赛的一个区间与非操作题说起&#xff0c;群里大佬用的ddp思想使其满足结合律&#xff0c;但是我连矩阵乘法都不会于是从头开始学习矩阵乘法。 P3390 【模板】矩阵快速幂 和快速幂一模一样&#xff0c;只是把数乘换成矩阵乘&#xff0c;只需要定义结构体矩阵然后重载一…

51nod1600-Simple KMP【SAM,树链剖分】

正题 题目链接:http://www.51nod.com/Challenge/Problem.html#problemId1600 题目大意 给出一个字符串sss&#xff0c;每次在最后插入一个字符后求它的所有分别子串构出的failfailfail树的深度和。 1≤Q≤1051\leq Q\leq 10^51≤Q≤105 解题思路 考虑两个相等的子串长度为le…

课程 预编译框架,开发高性能应用 - 微软技术暨生态大会 2018

微软技术暨生态大会&#xff08;Tech Summit&#xff09;&#xff0c;2018 年在上海世博中心召开。这是最后一次的 Tech Summit 了&#xff1b;明年开始&#xff0c;中国大陆地区就要和其他国家和地区一样&#xff0c;进行全球 Ignite Tour 了。我也有幸成为分会场讲师团队的一…

【DP】方格计数(nowcoder 20107-B)

正题 nowcoder 20107-B 题目大意 在一个H*W的平面上&#xff0c;选择N个点&#xff08;坐标为非负整数&#xff09;&#xff0c;使得每个点之间的距离大于D&#xff0c;问你有多少种方案 解题思路 设fi,j,kf_{i,j,k}fi,j,k​为有i个格子&#xff0c;选择k个格子&#xff0c;…

YbtOJ#853-平面标记【整体二分,凸壳】

正题 题目链接:http://www.ybtoj.com.cn/contest/119/problem/3 题目大意 给出nnn个点(xi,yi)(x_i,y_i)(xi​,yi​)&#xff0c;mmm次给出(ki,ai)(k_i,a_i)(ki​,ai​)表示标记所有满足 yj>kixjaiy_j>\frac{k_i}{x_j^{a_i}}yj​>xjai​​ki​​的未标记点 求每个点…