使用Azure DevOps持续集成GitHub项目

点击蓝字

关注我

微软的Azure DevOps是一款软件开发管理工具,整合了需求、代码、编译、测试、发布等所有功能于一身。今天我们就来看看如何用Azure DevOps对自己GitHub上的项目做持续集成,并能在GitHub显示最新编译状态。

其实在不久之前,Azure DevOps 曾经叫做Visual Studio Team Service,本地版叫做 Team Foundation Server (TFS),为了体现拥抱开源,包容一切的全新微软形象,改名部有一次立功了,去掉了容易让人误解为微软Only的 "Visual Studio" Brand,并且更加侧重于云端。

640?wx_fmt=gif

新建Azure DevOps项目

让我们进入正题,首先,你需要在Azure DevOps上新建一个Project,这个Project仅仅用于编译代码,你可以完全无视代码托管、测试、发布等其他功能。建立完成之后,点这个蓝色的小火箭,旧可以经入Pipeline功能。

640?wx_fmt=png

新建编译管线

Pipeline里选择Build,然后在New菜单里选择New build pipeline

640?wx_fmt=png

连接GitHub项目

然后选择GitHub。注意:如果你之前没有在Azure DevOps里连接过GitHub,那么这一步里你需要进行授权认证,允许Azure DevOps访问你的GitHub资源。

640?wx_fmt=png

连接完成后,选择你的Repository以及branch

640?wx_fmt=png

比如我需要编译 Edi.ImageWatermark 这个项目

640?wx_fmt=png

然后点击"Continue",进入编译配置页面

640?wx_fmt=png

配置编译步骤

我的这个工程是一个.NET Standard 2.0的类库,因此我选择.NET Desktop模板。这里可以根据你的项目类型,选择预定义的模板,比如安卓、iOS、各种语言的网站项目等等。实在没有的话,也可以新建空模板自己配置每一个步骤。

640?wx_fmt=png

然后记得改编译管线的标题,让自己易于记住和管理

640?wx_fmt=png

根据自己的需要,修改每一个编译步骤,比如我喜欢用最新版的NuGet,我旧可以把版本号改成4.9.2

640?wx_fmt=png

并且我不需要测试,因为我的工程里并没有单元测试项目,因此我可以删除Test的步骤。

640?wx_fmt=png

启用持续集成

想要每一次GitHub收到commit都进行编译的话,在Trigger里选择Enable continuous integration

640?wx_fmt=png

类似的,如果当有人给你提PR的时候想要进行编译,也可以勾选 Enable pull request validation

640?wx_fmt=png

使用编译状态图标

Options选项卡里复制Markdown link

640?wx_fmt=png

然后粘贴到你GitHub工程的Readme.md里去,并且提交commit

640?wx_fmt=png

这样你就得到了一个最新编译状态的图标

640?wx_fmt=png

保存并测试编译管线

回到Azure DevOps,点击"Save & queue"

640?wx_fmt=png

可以看到一个Build已经启动了

640?wx_fmt=png

点进去还可以看到详细的编译过程

640?wx_fmt=png

如果一切顺利,编译成功后,你的GitHub项目主页就会出现绿色succeeded的字样。并且以后一旦这个工程有新的commit提交到GitHub,都会触发持续集成的编译,并更新这个状态图标。

640?wx_fmt=png

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

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

相关文章

[BZOJ 3811]玛里苟斯(线性基)尽量理解的题解

文章目录titlesolutioncodetitle 魔法之龙玛里苟斯最近在为加基森拍卖师的削弱而感到伤心,于是他想了一道数学题。 S 是一个可重集合,S{a1,a2,…,an}。 等概率随机取 S 的一个子集 A{ai1,…,aim}。 计算出 A 中所有元素异或和,记为 x, 求 x^…

CF464E The Classic Problem(线段树 最短路)

CF464E The Classic Problem \(\bigstar\texttt{Hint}\):发现没有什么好的突破口?为什么不想想怎样才能实现题目中 \(2^x\) 的加减法呢? 可见每次加减法,我们要做的是将添加的 \(1\) 和右边的连续的 \(1\) 合并为一整段&#xff0…

9.28模拟

fuckingqytandAstaAKIOI\texttt{fucking qyt and Asta AK IOI}fucking qyt and Asta AK IOI 前言 200pts(lemon)01001000 340pts(996)10010010040 T4是lemon的数据锅掉了 T1本地洛谷996都能过,lemon蜜汁RE。。。 枯了…

C. Longest Simple Cycle

C. Longest Simple Cycle 题意: 有n条链,第i条链上有c[i]个点,a[i]为第i条链的顶点与第i-1条链的连接点,b[i]为第i条链的最后一个点与第i-1条链的连接点。通过上面的方法连接链会产生很多的环,问这些环的最大长度。 …

【CF813F】Bipartite Checking(线段树分治+可删除并查集)

文章目录titlesolutioncodetitle You are given an undirected graph consisting of n vertices. Initially there are no edges in the graph. Also you are given q queries, each query either adds one undirected edge to the graph or removes it. After each query you…

在.Net Core WebAPI下给Swagger增加导出离线文档功能

一丶前言最近刚接触到Swagger,在github上下载了它的源码和demo学习了一遍,发现这个组件非常好用,不过不足的是它没有导出离线文档的功能,于是乎我就想给它加一个导出功能Swagger Github开源地址二丶思路其实说白了api文档就是一个…

P7920-[Kubic]Permutation

正题 题目链接:https://www.luogu.com.cn/problem/P7920 题目大意 一个排列ppp生成的森林的形式如下,对于每个iii找到最大的j∈[1,i)j\in [1,i)j∈[1,i)满足 pi>pjp_i>p_jpi​>pj​,然后连一条i,ji,ji,j之间的边。 给出一张树GGG,…

YBTOJ洛谷P4331:数字序列(左偏树)

文章目录题目描述数据范围解析代码题目描述 数据范围 n<1e6n<1e6n<1e6 解析 先考虑简单情况 如果原数列是单调递增的&#xff0c;显然应该使biaib_ia_ibi​ai​ 如果单调递减&#xff0c;应该取中位数 那么原数列如果分成单调递减的几段&#xff0c;那么每一段都取中…

P8441 旭日东升(二维数点经典套路)

P8441 旭日东升 维护一个不可重集合的序列 \(a\)&#xff0c;长度为 \(n\)。支持以下两种操作&#xff1a; l r x 对于每个 \(l\le i\le r\)&#xff0c;将 \(x\) 并入 \(a_i\)。l r 设 \(S\) 把每个 \(l\le i\le r\) 的 \(a_i\) 并在一起的集合&#xff0c;输出 \(S\) 中所有元…

深搜、广搜、搜索剪枝

搜索与回溯讲解 文章目录深搜方向向量&#xff1a;DFS代码&#xff1a;题目讲解&#xff1a;八皇后问题字符序列自然数的拆分广搜BFS代码&#xff1a;题目讲解&#xff1a;瓷砖关系网络bfs与dfs的用途与区别搜索剪枝可行性剪枝最优性剪枝记忆化搜索搜索顺序剪枝题目&#xff1a…

使用logdashboard查看可视化日志

logdashboard日志面板是我在Github写的一个开源项目&#xff0c;旨在让查看日志变的方便快捷。在线预览现在功能有日志检索、趋势图、异常堆栈快速查看、日志详情等logdashboard支持自定义日志模型可以记录更多自定义的属性。logdashboard支持的日志来源有以下两种&#xff0c;…

CF1603C-Extreme Extension【整除分块,dp】

正题 题目链接:http://codeforces.com/contest/1603/problem/C 题目大意 定义一个序列aaa的f(a)f(a)f(a)为你每次可以将序列中的一个数zzz分裂成xyzxyzxyz&#xff0c;然后再把x,yx,yx,y放回原来的位置&#xff0c;然后f(a)f(a)f(a)表示把aaa变成不降序列的最少操作次数 给出…

数论分块专题复习(余数求和+模积和+Ice Rain+The Fool)

文章目录前提知识复习T1&#xff1a;余数求和titlesolutioncodeT2&#xff1a;Ice RaintitlesolutioncodeT3&#xff1a;The FooltitlesolutioncodeT4&#xff1a;模积和titlesolutioncode前提知识复习 整除分块是用于快速处理形似下列式子的方法&#xff0c;是解决莫比乌斯反…

SP1557 GSS2 - Can you answer these queries II(离线 线段树)

SP1557 GSS2 - Can you answer these queries II \(\bigstar\texttt{Hint}\)&#xff1a;遇到去重的问题&#xff0c;我们通常考虑离线询问后处理。 可以枚举右端点&#xff0c;将询问存储在右端点&#xff0c;考虑用数据结构记录左端点的信息。 那么我们如果用线段树维护左端点…

模板:K-D tree

文章目录前言思想能解决的问题操作建树询问修改完整代码所谓KDtree&#xff0c;就是有K个D的树 &#xff08;逃&#xff09; 前言 KDtree是一种解决多维问题的暴力数据结构 K维状态下的最差复杂度是nk−1/kn^{k-1/k}nk−1/k 在最常见的2Dtree中就是根号n 但是玄学的它常常能到…

AT3877-[ARC089C]GraphXY【构造】

正题 题目链接:https://www.luogu.com.cn/problem/AT3877 题目大意 给出一个大小为ABA\times BAB的矩阵ddd 要求构造一个点数不超过300300300的有向图满足 图中没有重边和自环图中的边权为[0,100][0,100][0,100]的整数或者未知数X/YX/YX/Y对于所有X∈[1,A],Y∈[1,B]X\in[1,A…

领域驱动设计,让程序员心中有码(六)

领域驱动设计-聚合&#xff0c;一种极简的思维模式引言作为IT技术产业飞速发展的产物&#xff0c;软件工程学已经成为当今时代非常重要的一个学科。作为一名资深的软件开发从业者&#xff0c;我们需要学习的东西实际上已经远远超出了原本在大学教育阶段所接受的知识深度和广度&…

CF856D Masha and Cactus(树上 DP+抵消贡献技巧)

CF856D Masha and Cactus 我们先捞出一个根节点&#xff0c;那么一次旋变就是对路径上点的覆盖。 设 \(dp_{i,0}\) 表示 \(i\) 没有选择时子树内最大收益&#xff0c;\(dp_{i,1}\) 表示 \(i\) 选择时子树内最大收益&#xff0c;那么将每条边存在 \(lca\) 上。 之后贡献怎么算&a…

hdu 5094 Maze

题意&#xff1a; n*m大的迷宫 &#xff0c;有p种钥匙。钥匙最多有10种。 然后一个k&#xff0c;然后k行表示 (x1,y1),(x2,y2)直接有门或者墙。 如果g0 &#xff0c;就是有墙&#xff0c; 如果g>0 表示有门&#xff0c;且门需要第g把钥匙才能开。 然后下来一个s&#xff…

数论分块练习([CF830 C]Bamboo Partition + [hdu 6395]Sequence )

文章目录T1&#xff1a;SequencetitlesolutionT2&#xff1a;Bamboo PartitiontitlesolutioncodeT1&#xff1a;Sequence title 传送 solution 一眼就是很裸的矩阵加速 ⌊pl⌋\lfloor\frac{p}{l}\rfloor⌊lp​⌋分块矩阵加速就可以了 [BA1][DC⌊pl⌋010001]\begin{bmatrix}…