请选择 进入手机版 | 继续访问电脑版

ITIL,DevOps,ITSS,ITSM,IT运维管理-ITIL先锋论坛

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 3119|回复: 0

【52ABP实战教程】-- Devops如何用VSTS持续集成到Github仓库!

[复制链接]
发表于 2018-11-18 15:54:11 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-18 16:07 编辑 1 E& C) L! M0 a1 I1 A
3 A* V8 Y) a+ g1 m& D2 F, \
“ 工欲善其事,必先利其器。磨刀不误砍柴工!”

8 c0 P" g+ _) I5 u' x
8 ?3 Q% l2 S/ b& f# P8 Z
  • 管理工具会VSTS。
    ( g% |! C# n9 N% r( n' M
7 T# r2 j+ R% W/ A- V- U

6 \( c6 i! n: ?9 C" i" k6 K( s' _
  • 代码管理会用GITHUB。
    5 G0 j+ k. Q6 r0 B: t4 Q+ K  s3 N
( m9 s0 k0 p/ `2 w$ R0 K" E6 D

2 k/ y* d3 I2 a$ ?9 P  Q
  • 服务器会用Azure。

    9 L1 k$ k( E( w1 b* A$ \

    5 p1 m8 i6 j9 ], k) ]! k/ W* V+ Z% f
    所有的东西都是利用现有服务。不会说自己从虚拟机开始玩。我们就专注于写代码。
+ b+ o/ P+ m, t/ k4 N& t9 R% l

4 A; |% {  X5 }% V7 c5 [% |
什么是VSTS?' ]* N; |3 {7 t: f$ X, h3 E; M
VSTS的全称是Visual Studio Team System。

! d# d: ^6 f" q$ P& l$ q- Q: V# Z/ e

! Y  Y% H0 ^3 a( s7 r  V. R% p介绍VSTS之前先说下TFS(Team Foundation Server)。
8 b$ A2 J; A9 _$ m- @! l9 B, ^* I

6 u6 P3 h. z5 A( e  S
TFS是微软推出的一款ALM(Application Lifecycle Management)软件生命周期管理工具。通过它你可以从代码管理->代码版本管理->项目管理->持续集成->自动发布->自动测试等一系列软件生命周期在内的全家桶功能。

3 y( x5 A4 B% L1 V2 s9 x, p8 ~

5 t# U$ z3 I8 \! u
VSTS(Visual Studio Team System)是基于SaaS(多租户)化TFS的云产品。

5 \* b2 m1 h" T  U1 l2 t
8 s$ d5 R6 W- q$ r" f
听了之后是不是感觉很强大。

, k9 r6 ~, N- ~; j/ l, a, w
+ I) d2 T6 O' V7 w/ V+ [  p$ h
关于Github4 t; W1 A2 l: G$ G3 ^+ E, o, W

# m. s1 t, Y) C( }) U) L/ t4 @. T! z7 m% c
Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。
: w, @2 b+ C* C1 K& F  S2 `) f

3 g! ~# d+ \9 V$ Q/ Q7 E/ ^# E1 \GitHub是一个通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。
8 E, ]1 u( A- j5 A

8 _* J# |  J0 t. b1 M7 Q
0?wx_fmt=png.jpg
先上一张图
% _# g3 B, i7 V: C" s
: A& ?4 a6 f# J" u0 @
图片来自知乎。
9 ^9 e" I1 M( k$ m! U5 @

* R! A1 U2 L, [/ W
为什么会有这个需求。- z' J% Y9 p' o  {1 i

/ q2 I% l1 P" t" a. T* C
目前Github作为一个全球最大的码(tong)农(xing)交友社区。也是最大的开源社区,但是它没有自动部署,在导航篇的时候我们说了。我们是一个,通过开源实际项目的方式给大家一个良好的体验。
! g2 p: P) t) c! g6 u
9 U" h) m- ]  a
涉及到的技术也会用微软全家桶的方式来进行开发的。
4 w5 B% ^, n- `

2 V; ^' n0 r, P+ E% U" \
恭喜VSTS开通香港节点% F$ `, p* i  b6 r7 }% `+ ~) K
- ^& I, d8 ^4 T# Z# S
2 P; G- C+ ~5 r
没有香港节点也就是东亚区域之前呢,大家只能从 美国中部、加拿大中部、西欧、印度南部、澳大利亚东部、巴西南部这几个节点选择账户所在区域。
# {! J* `  ~6 y: y0 `% H" L
7 a" E' E" ?! Q) y% `
这些节点都有一个特点,对我们国家不怎么友好。按照 Julia 的说法,我们国家强大的防火墙。恩恩。
9 v* {% x  Q- q  _; h( N

8 L' g6 Z5 w7 g. J- L在11月2日的微软科技大会上,微软研发部门的全球副总裁潘正磊女士宣布了微软研发云VSTS将于2017年底前落地中国香港。然后在10号的时候VSTS的老大布雷恩就宣布开通了VSTS在香港的节点。

8 Q: ~# c8 t1 _: O0 a* C. P7 c3 {2 Q
' n8 H/ g$ ^+ W. V& H
这意味在大陆使用微软全家桶的速度, 蹭蹭噌的加速了。
0 G( u# v9 q) I

# e, V; v% d+ K- n- O
好了,闲话少叙。开始干吧!

" e( j8 j3 v5 G3 W' V& H! p

  C1 w0 r! O9 s% ?/ d% b
注册VSTS
6 Z  Y& {) ?5 P* D  w) m
' Y4 H6 d; `; Z7 [& ^- p2 v0 ~
首先你要有一个微软邮箱,没有自己去注册。
, s# D- f2 t0 w3 F, C
2 a" ~9 ~6 c" l( }
然后打开https://app.vsaex.visualstudio.com/me?mkt=zh-CN 新建账户。
( M% ^% {) v* b& D

$ F$ V1 b4 E4 w

; f& [% @. V+ g0 \, @
0?wx_fmt=png.jpg
image.png

, I1 o! r% e% C
- c+ \. w' X& [* c3 V, m) L
这里的所在地一定要选择东亚,因为其他地区的速度慢。
, C$ Y! u) p# P, @% G/ D

0 H4 b. c7 T% E$ }* w
正文& s5 r/ ]  Z0 x3 `/ N; d# M( [

! G3 V7 x4 f! c8 P: h" ?! |
我们现在开始做一些正经事。
0 }6 R% O3 n. E0 U4 W

" h1 Q$ }9 ?5 @& ]
  • 首先创建一个新项目
    8 a! V$ i0 K6 O* w' _6 [
    0?wx_fmt=png.jpg
    image.png

    4 Q/ ]; _& S8 ]7 n( P* N. y

7 `/ v, \% c, P7 n3 f
  • 创建完毕后,进入项目。

    $ p$ }7 y; E) }4 e
    0?wx_fmt=png.jpg
    image.png

    ! J& K2 @9 e& P- V8 z
/ U+ W7 Y0 q  V5 \3 [

/ o# {/ \2 u- j# _$ ^$ M- s
  • 在Build And Release 菜单栏下的Builds中,选择新建一个“Empty process” 。
    ) z5 W4 Z0 F/ C7 F你可以给这个任务创建一个名字,然后这里有几个队列,我们选择"Hoste vs2017"的队列
    9 l9 Q( d1 u) g  i. ^
    0?wx_fmt=png.jpg
    image.png

    * a& P6 W; \" }* Z- H: ~$ v
0 x% P. t4 k3 t
9 m- o% G( P) q6 X9 c
  • 然后选择“Get Sources” ,选择github。
    1 V4 C5 p4 A8 n! {5 B1 K( H* I
    0?wx_fmt=png.jpg
    image.png

    5 H( T. W1 n, _3 T- ]. D1 m, i0 V0 {
    这里需要你的github账户授权,这里你可以选择用网页授权还是用个人密钥授权。; s: W6 j+ ^0 y, E3 P: ?
    我们采用Authorize using OAuth,然后这里请注意,弹窗很容易被拦截。* x! y! G7 T1 F0 V) g- E. Q
    这里你要允许弹出。
    . N& |' ]/ ]- S# Y. {) _) \* W$ y1 {
    0?wx_fmt=png.jpg
    image.png

    ; R; [/ z# M3 c$ J# o授权成功后,可以看到你github中仓库的信息。6 E9 L& c9 G4 W2 j6 A; W
    0?wx_fmt=png.jpg
    image.png
    ( w3 z& Y8 _' g# f9 X( f

" {; L5 s+ E  h" V: H9 [

2 Z1 t2 Q( y( l
  • 然后选择菜单栏上的“Triggers”触发器按钮。打开触发器,
    4 P# D5 X" h$ @  P+ p- A& z
    0?wx_fmt=png.jpg
    image.png

    % o1 J7 h, R; E! ]! N

; }$ f. ^- G: ]0 e5 Y
  • 选择Options配置下信息。

    " S4 c0 w" u, y* Y2 S
    0?wx_fmt=png.jpg
    image.png

    ; M0 e9 Q. V0 ^+ _
    最后,右上角“Save& queue”保存。

    , i* m% p1 B2 |+ R
    0?wx_fmt=png.jpg
    保存信息
    7 X) s8 ]  L4 Z- G9 \5 W  Y

* a5 M+ F3 v! ?/ q1 S" [3 j" G0 G
% F! }' B( V) r% g7 n+ n: a
  • Build number format 是指创建生成的生成码。你可以试试。

    , k; u# O: d. r/ o# l  |# |; X
6 Z$ C) Q, l2 l9 W, x! J# o
至此整个功能配置已经完毕了。
/ ]8 t/ p" A9 p  D

/ L5 v& d, R9 r2 f' I3 t( f' Y5 p
使用VSTS给github的README 文件创建构建状态
2 N  _7 {1 k! n) b2 d4 Y
$ ~8 c1 s8 {- V% U8 D" n$ r, |8 i) r; h) W% V
构建完毕了,我们来看看怎么让逼格显得稍微高大上点。打开我们的github项目。+ S% G/ N* y. f% P2 J$ h. Y

! L5 U) M  `3 A- w

+ b! u' H6 P, [1 \
0?wx_fmt=png.jpg
image.png

; Y% k5 q6 k9 y2 N, ^; t% p  Q
以上效果图!!!

. r  D6 g) E3 G- o$ e% [8 ^. y
' m. H8 U$ G$ p
链接地址:https://github.com/ltm0203/aspnetcore
3 m# m/ ?! z: m' R& W- t
3 p" ~5 i. J/ q8 `1 b5 B
我们在VSTS中为项目创建一个自定义的通知消息,方法是利用VSTS的构建生成的URL,利用markdown的语法来完成。

, y( n7 t( W8 L8 f
. N5 N  W& o2 g( `
  • 首先在打开你的github,导航到你所在的仓库,这里我们使用的是aspnetcore项目中。
    # T8 k' }& p' H5 X+ |
! G' Q7 J& _( X* n. _6 s) J

/ c1 Q/ a/ C- l& w- A8 \' O" e/ ^
  • 创建一个README.md的文件。
    2 Z  }1 {5 R( P4 {& k/ B

7 A# t/ e" j  F  C1 A7 M$ Q- p; v" \

2 |, w" u3 S0 {3 T8 t; |& h
  • 然后将vsts中生成的徽章标记链接,粘贴到README.md文件中即可。  x* Q% W: }# A. A
    代码段:
    : R3 [* x: [2 D: d
, |2 j& i" f& Y/ O0 Y
[<img src="https://ltm0203.visualstudio.com/_apis/public/build/definitions/06667c49-f49d-4e3b-8eda-1ee96b1914c7/1/badge">](https://51abp.visualstudio.com/_ ... 48d80437520/1/badge)
3 P2 {; S7 S9 T, n9 l2 m4 C  E+ y  }9 f

0 l$ h% Z* \; x. w- J
vsts中生成的徽章URL:
4 R% D8 O1 }- u' g6 r: |

# q" O4 h% b8 w+ }) p# H
0?wx_fmt=png.jpg
徽章URL.png

9 p, Y4 S% U9 @
; V- i# {/ d" e& ^1 n1 M. w/ H
  • 在github项目中的"Setting"中,打开webhooks,可以看到你绑定的webhook。每次对GitHub仓库的提交都会触发VSTS中的构建。
    ) X& b9 p' V* c/ u6 z+ G' I

" H' ^0 z! y$ n# F& J
  • 我们返回到vsts中,打开build。可以看到我们创建的队列。

    8 G8 L8 R* A3 m" g$ Y* U, }6 r" [
    0?wx_fmt=png.jpg
    image.png
    ( k8 D0 [. q- \# ^
    这里可以看到更加详细的统计信息,你编译的次数,状态,每次提交的信息等等。
    6 |) N1 w% c4 I& f  N) A" @/ I

4 F$ T2 c) \: Y; P5 g

% Z1 }. p& h4 u6 F实际开发呢?
* i# m# J3 x/ x3 u( I3 U8 w9 b$ q3 t% m0 _0 J

6 i3 @% V1 R; o* M
在实际开发的项目中,我们更多的时候,是一个几个功能写好了才提交一次,而当前的情况每个文件发生变化就编译一次,这稍微有点不合理。我们通过对队列任务这里你可以随意取一个名字的进行修改,让项目编译更加的合理。修改为每提交一次才编译。

3 z! L" B! q5 F" G+ K
2 m* p1 d5 Z, o- |+ ~5 m+ c
  • 打开VSTS,点击“Build & Release”,再点击“Builds”,找到任务名称“这里你可以随意取一个名字”,然后点击“Edit”按钮。

    . E$ K% r6 \4 I

0 S" o0 w5 R9 L7 D7 @. Z2 [" M
  • 点击‘Trigger’.修改起来也很简单。。

    % v6 X2 P8 ~1 ?& }* c
    0?wx_fmt=png.jpg
    看这里.png
    " [0 M; u& |  n- Q
    修改为如图所示即可。
    1 W. G6 U3 g  F& }1 T; t, F+ k* }

- E- T8 A, ^, ]8 ~; N" E4 X
' A* h0 E3 u4 t9 v
  • 然后点击Save & queue,再点击Save。
    " W4 ]. q, z: I1 R, Y9 q
: v( L" z: e5 Y+ Z7 |& I* h2 b! H. e
总结" `5 |# m( v& Q# L3 b
0 X5 a; A4 U+ D9 b
以上就是利用Vsts自动编译构建项目的完成,然后在github项目中看到项目的构建状态!
7 e% T% ~# u" c! Q

: |/ \& @. D$ \) n: p: H& \核心是为了解决帮助大家在开发过程进行的日常编译问题。自动化构建。

0 j3 T) N1 s/ C; p
  z" H9 ^- ^6 M& k! C3 J. z" w/ S
VSTS的整体功能肯定不止这么一点,在后面的日子内,我会带着大家慢慢玩!
4 z1 E$ b' ]! z9 {  ^
6 g2 Q, ^# _7 F0 c' L7 |1 \% x
原创:梁桐铭
( R& S/ x* c5 r/ f% ~+ M
  r  j( T1 a0 A3 }+ F
$ n4 p" h( G0 e; y/ c2 s# D8 X

本版积分规则

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2019-11-18 06:15 , Processed in 0.167886 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表