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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 7026|回复: 0

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

[复制链接]
发表于 2018-11-18 15:54:11 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-18 16:07 编辑
1 r7 b* e, M& j
( K4 Y. j' L, h5 t6 T
“ 工欲善其事,必先利其器。磨刀不误砍柴工!”

# k7 C2 I. D$ q
. H; S9 ^" C# a! r' \; {) b
  • 管理工具会VSTS。

    & n8 e& L( o/ r' X
, v$ f% |" X( h+ R. k  F

9 v2 @* X! n! y5 d
  • 代码管理会用GITHUB。

    4 {( _" S% X0 x+ O2 X* d
  G  E: u7 O2 \

, c; B" z! {3 F. V! C
  • 服务器会用Azure。
    3 T+ K: s' X0 L5 g% R

    , k+ M7 Z- V/ t  E( L9 ~" r$ T
    所有的东西都是利用现有服务。不会说自己从虚拟机开始玩。我们就专注于写代码。

4 z/ {( L3 t3 r
. t. L% L  n1 ~
什么是VSTS?
/ ?0 d6 m% O) s" o: u
VSTS的全称是Visual Studio Team System。

  _, U  _, ?( o: d2 f

& I6 w# g; d. g介绍VSTS之前先说下TFS(Team Foundation Server)。
* P0 k- y  i" V* Z

/ i2 K8 ?7 [5 M2 }8 [8 n& H9 ]
TFS是微软推出的一款ALM(Application Lifecycle Management)软件生命周期管理工具。通过它你可以从代码管理->代码版本管理->项目管理->持续集成->自动发布->自动测试等一系列软件生命周期在内的全家桶功能。

+ v$ L7 ]% L1 c, H. V- U$ \' S

& W" V" J4 i- G; Q7 o
VSTS(Visual Studio Team System)是基于SaaS(多租户)化TFS的云产品。

# u4 T4 ]0 y+ Q  k& v& P

. m/ S& L6 o  j听了之后是不是感觉很强大。

# F$ M) |. Y6 C4 M: O) _
8 U9 b3 |) [, @* }" m& I
关于Github
  e  u5 N3 j, b0 Y- Y: K8 e/ H% s1 f8 h& s1 n
& V( y5 d& r0 C; v$ B; B7 p- S* q
Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。

  V( C, N2 i( V0 v' d7 A. `8 W; s
2 W( `5 K" U, R, g5 A1 X9 p6 L
GitHub是一个通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。
0 N( p2 ]1 q* x! E8 V+ V* e% \

! o: T6 _" L1 K: n4 c
0?wx_fmt=png.jpg
先上一张图

0 V2 i% d1 C. _  `1 _" `
" F/ p3 h. @( E. w2 U
图片来自知乎。
* v( [0 P% ~  K0 u' Q' l! c
  _% R- N+ b# b7 G
为什么会有这个需求。
9 I7 d1 h  F9 ^* k# L# G- C* X, p- w# m, Y! x* |
目前Github作为一个全球最大的码(tong)农(xing)交友社区。也是最大的开源社区,但是它没有自动部署,在导航篇的时候我们说了。我们是一个,通过开源实际项目的方式给大家一个良好的体验。
9 A: n( A# A! @: z' [
+ T/ q2 _6 c8 M& z+ V  e
涉及到的技术也会用微软全家桶的方式来进行开发的。

: S% I; X, x4 Y% _  }) |
% Z, E% L- h' w% g3 }; C. s1 N1 g
恭喜VSTS开通香港节点9 @1 W2 ]4 C. x, C
8 t3 k9 x, j0 q- V1 `

6 W9 a$ @6 n  l( L9 K# `
没有香港节点也就是东亚区域之前呢,大家只能从 美国中部、加拿大中部、西欧、印度南部、澳大利亚东部、巴西南部这几个节点选择账户所在区域。
7 _9 {' H. r# X3 {& ?7 U

8 t2 V. M2 |0 h" N: i" a( o, E这些节点都有一个特点,对我们国家不怎么友好。按照 Julia 的说法,我们国家强大的防火墙。恩恩。
! c: x/ S" t' H
6 H/ ]" t9 v& Z
在11月2日的微软科技大会上,微软研发部门的全球副总裁潘正磊女士宣布了微软研发云VSTS将于2017年底前落地中国香港。然后在10号的时候VSTS的老大布雷恩就宣布开通了VSTS在香港的节点。
3 n. R/ G& \6 W$ }) |: C

4 z2 [; t  S* b2 ]$ J这意味在大陆使用微软全家桶的速度, 蹭蹭噌的加速了。

1 A- ]. y; b0 i6 }, o2 [$ \, q
; f) j5 X/ A8 X5 \' c9 U
好了,闲话少叙。开始干吧!
. c" k. E2 U4 s% e7 B. G7 `

/ P1 E+ B, {+ s. ]5 \5 z
注册VSTS
% l$ R* k- s8 c& k* G+ S& h6 g+ C$ f0 @
首先你要有一个微软邮箱,没有自己去注册。
9 i8 b' y5 N1 Q
" Y; N( `3 S7 m* v: X
然后打开https://app.vsaex.visualstudio.com/me?mkt=zh-CN 新建账户。
9 x4 o1 C: I- n# ?

! m+ P$ v8 Y) L; ?9 Y1 s

# @% ]6 o: m5 r# T8 I
0?wx_fmt=png.jpg
image.png

$ w# K% w* a7 ^$ s3 u9 V

; E, L( L! n) z2 y
这里的所在地一定要选择东亚,因为其他地区的速度慢。

5 b4 k$ q" q8 x) u. O; \6 n- i9 d
  Q  S& J5 \+ ]5 P+ V3 T
正文8 c, v' ]$ R" Q

$ p0 a7 Y3 n- U* ~: `/ L6 O% B
我们现在开始做一些正经事。

$ K% _  b- D! B+ B5 N. i- p
5 a$ N. L- M6 O/ ~
  • 首先创建一个新项目
    : b: C3 U5 {* I) D
    0?wx_fmt=png.jpg
    image.png

    , D! v% L6 L% R/ k% F

. R' I* O+ a- g
  • 创建完毕后,进入项目。

    : ]* g! V5 b$ U4 m- t
    0?wx_fmt=png.jpg
    image.png

    & u. _  d$ C/ T; |" Y( i9 e

$ [- [" M/ g3 v( r  v
! ]# s" X' e$ D
  • 在Build And Release 菜单栏下的Builds中,选择新建一个“Empty process” 。1 E) q5 u6 @, l0 A7 v5 d+ Y& ^
    你可以给这个任务创建一个名字,然后这里有几个队列,我们选择"Hoste vs2017"的队列

    3 v, a* O8 f4 n9 y2 F" N8 S4 \6 J3 x& [
    0?wx_fmt=png.jpg
    image.png

    + B, t: [% r6 e) Y

' z# C% P$ P  b* N, d/ T" t

( ]/ ~/ J. w  h. |$ k7 `$ E
  • 然后选择“Get Sources” ,选择github。
    + H  S( g" C2 E( E' e7 `
    0?wx_fmt=png.jpg
    image.png

    : a; s% e( c7 s5 ]2 U) ]
    这里需要你的github账户授权,这里你可以选择用网页授权还是用个人密钥授权。* I! V+ T) f# H/ z
    我们采用Authorize using OAuth,然后这里请注意,弹窗很容易被拦截。
    0 w* n( G4 b) N这里你要允许弹出。

    1 ~# A" Z0 y- H$ z  N5 I
    0?wx_fmt=png.jpg
    image.png

    6 M$ Q8 e8 u, A' o% K  I& p授权成功后,可以看到你github中仓库的信息。7 u3 K$ D! A, n# G+ V: j6 K
    0?wx_fmt=png.jpg
    image.png
    3 U; w' t$ V9 b% v
- v3 a: l, R4 S' i5 Z# m

$ y. n) s' A) l4 d3 d, k8 {8 g
  • 然后选择菜单栏上的“Triggers”触发器按钮。打开触发器,
    6 P( ]( C* P! }3 K0 F
    0?wx_fmt=png.jpg
    image.png

    # R& T+ O( J! J9 y5 c' r4 ~

! ], D# ?/ d$ s8 M+ R2 ]" S2 T
  • 选择Options配置下信息。
    # ~) S& a3 ~. Q+ ~2 v" ?! n
    0?wx_fmt=png.jpg
    image.png

    9 c; Q, S% x2 a7 \
    最后,右上角“Save& queue”保存。

    : i# d( u1 w- r& ?
    0?wx_fmt=png.jpg
    保存信息
    ' e" [! ~- T! g' w4 |9 f& i

8 o" T2 u0 F/ o
6 A3 b' x- y! D2 [: \1 g9 i- s
  • Build number format 是指创建生成的生成码。你可以试试。
    , K) ^# M* D7 c
% q0 j: T0 ?4 E3 C- B1 L; L$ J
至此整个功能配置已经完毕了。
; N4 ^9 C" D7 N! t* j" r# X" N

5 ]8 ^8 p" R5 p/ K2 ~* {
使用VSTS给github的README 文件创建构建状态
  E* `/ c' a9 |- q6 _0 G& X. d  z' H
6 S+ [  D3 Z1 x: H2 C( }8 u: f! O% i" }+ a
构建完毕了,我们来看看怎么让逼格显得稍微高大上点。打开我们的github项目。; ~7 A7 P" u+ B' s. F
1 `$ f. ]6 C- }: l2 |3 {

* w6 `# h& f  X8 y" T( Y
0?wx_fmt=png.jpg
image.png
1 F2 o# L. f3 L, k" @
以上效果图!!!
9 g, G5 I9 p& s; R" O+ `9 c. X

- z4 [! P# Z* s5 i! Q/ h# p' i链接地址:https://github.com/ltm0203/aspnetcore
8 X+ s8 c% [8 w( C& C4 s  O
& c: X3 E) N1 S- t
我们在VSTS中为项目创建一个自定义的通知消息,方法是利用VSTS的构建生成的URL,利用markdown的语法来完成。
, X1 I$ X: b9 M0 \/ I  c

% Y4 e- V6 H) L8 l. m3 ^& j4 l
  • 首先在打开你的github,导航到你所在的仓库,这里我们使用的是aspnetcore项目中。
    ( ~# j! ^8 r$ k

9 F& r% P; |4 x* W1 j
/ D+ \# b+ n# s
  • 创建一个README.md的文件。

    2 ]* b' _. W# X5 n/ X

% A. D/ g& ~( x" i1 Q+ a! ]

& u5 `1 q  e" Q, L1 I$ p' M. W$ `
  • 然后将vsts中生成的徽章标记链接,粘贴到README.md文件中即可。
    : r  |+ o; ?3 J! Q. q代码段:
    * A* L- c+ w. K4 K1 d
8 p! _& O, E# ]
[<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 a( n5 B3 y7 B
! r7 a( g7 t1 r! B4 N
+ [4 Q" E+ i5 j8 Y! X% @3 W
vsts中生成的徽章URL:

( }* k+ y- c; f' E
4 v/ F4 Y/ L/ t9 C+ R
0?wx_fmt=png.jpg
徽章URL.png

& g9 w% t; ]& r- N4 X

" x3 c$ Q  R* X& W4 s) v3 Z1 t
  • 在github项目中的"Setting"中,打开webhooks,可以看到你绑定的webhook。每次对GitHub仓库的提交都会触发VSTS中的构建。
    2 i5 Q) _3 d' H1 u! C' h9 n$ E
$ E& \3 A) G4 u- m- Q, w' j' d# j3 Q
  • 我们返回到vsts中,打开build。可以看到我们创建的队列。

    4 B; o' R, m3 ]" j; H% N
    0?wx_fmt=png.jpg
    image.png
    , D% C* Z1 @# U
    这里可以看到更加详细的统计信息,你编译的次数,状态,每次提交的信息等等。

    + J" i1 s2 F# M, K1 X; Z: {4 |# H
8 A3 X7 x  D, j* n

  M0 ]3 s0 h& u. X& [4 }4 ^- t实际开发呢?
" Z" ?( t/ D% [$ w+ `  r
  C- \- `) w$ b4 ?" q4 O% f! k( I' F2 b! H& S- o- S
在实际开发的项目中,我们更多的时候,是一个几个功能写好了才提交一次,而当前的情况每个文件发生变化就编译一次,这稍微有点不合理。我们通过对队列任务这里你可以随意取一个名字的进行修改,让项目编译更加的合理。修改为每提交一次才编译。
' V# J7 I- D8 L/ i/ w5 `% p

2 Z" r$ Z8 _2 ]
  • 打开VSTS,点击“Build & Release”,再点击“Builds”,找到任务名称“这里你可以随意取一个名字”,然后点击“Edit”按钮。
    4 [7 |5 E! v& m5 _' r

( g5 X; C5 S+ v7 f
  • 点击‘Trigger’.修改起来也很简单。。
    7 d( B) |% ?; g6 C" ?" \9 r( F" a" A
    0?wx_fmt=png.jpg
    看这里.png
    ( p6 ]7 e. ?+ T% B& ~+ J5 @# M: r3 S
    修改为如图所示即可。

    ' z2 @, r& I1 p; j" `
/ W7 E, N5 C. I8 a: [) U/ N
) z" @! l- o" w) q
  • 然后点击Save & queue,再点击Save。
    & w7 L  Y8 S" I* I* O1 t) A

: a, u( K5 k& y( ?( [总结
4 R0 X3 h# @# i* I: V! b. [3 u" d* ]5 Y/ Z. e6 m
以上就是利用Vsts自动编译构建项目的完成,然后在github项目中看到项目的构建状态!
+ @2 }- G2 ]" z. I6 k8 g0 E/ }0 d7 Y

' Q; p! ~- E2 C, M: k核心是为了解决帮助大家在开发过程进行的日常编译问题。自动化构建。
* n2 H; W6 g" C: U- p
& I- q: ?9 ?1 S* u
VSTS的整体功能肯定不止这么一点,在后面的日子内,我会带着大家慢慢玩!
# Y" w& I: ^% F. m4 r& |

5 `4 I- C' m" U0 a  d! H/ d2 ^# J8 o
原创:梁桐铭

+ ^; t9 c7 K: |
1 P) \+ ]+ V2 O
8 n8 @" w# g1 u; m2 z2 P- G: ~( ]/ _




上一篇:程序猿成长日记之独自修炼“六脉神剑”--Devops篇
下一篇:干货:拉动端到端价值交付--平安Devops演进历程ppt
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

参加 ITIL 4 基础和专家认证、长河ITIL实战沙盘、DevOps基础级认证、ITSS服务经理认证报名
本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|ITIL先锋论坛 ( 粤ICP备11099876号 )|appname

Baidu

GMT+8, 2022-5-16 23:05 , Processed in 0.116179 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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