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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 6900|回复: 0

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

[复制链接]
发表于 2018-11-18 15:54:11 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-18 16:07 编辑 % L$ O3 T: ^* g$ O. z6 R6 q, O5 z

% l3 F9 [6 V8 h/ c+ w6 T4 E- B
“ 工欲善其事,必先利其器。磨刀不误砍柴工!”

2 {, c6 z1 I* i7 D
3 }- D" a; O- s; z, O; Y: ~
  • 管理工具会VSTS。

    4 J7 i% J5 x; J& _
  q8 J1 m2 z8 O+ D: X" B
$ D  K% {- [) R2 c% v+ ?+ d  b! H
  • 代码管理会用GITHUB。

    & q, K$ ~! x6 {0 Y
) M/ [, o0 A, l) |% l! g

/ _) K, q$ w" r( ]; Q* t+ y
  • 服务器会用Azure。

    2 ^& L0 z! k% ?" O8 A! h
    # H+ \. U! w- Q  k
    所有的东西都是利用现有服务。不会说自己从虚拟机开始玩。我们就专注于写代码。

  }' u+ d# F7 L1 ^

% j; \' A6 a& K# ^+ D* ^9 P1 s2 s+ E
什么是VSTS?9 j- a2 T8 g  R% q
VSTS的全称是Visual Studio Team System。
+ ?! ^! ?) u% R8 c: l
" L1 j$ X5 o; j' }
介绍VSTS之前先说下TFS(Team Foundation Server)。

+ n* G8 M/ Y. j* U: N
2 |6 _4 h4 t9 {" r! I2 d
TFS是微软推出的一款ALM(Application Lifecycle Management)软件生命周期管理工具。通过它你可以从代码管理->代码版本管理->项目管理->持续集成->自动发布->自动测试等一系列软件生命周期在内的全家桶功能。

) g" {* Y' L3 ^: j7 U: l

4 M( ]. P2 {- `. J( e& }. n
VSTS(Visual Studio Team System)是基于SaaS(多租户)化TFS的云产品。

( Q: ?+ m5 ^. C1 q% D% _; d9 m

% b7 C! p0 c( v3 Y  T1 N. j听了之后是不是感觉很强大。

. \2 y5 p) X( O: I+ A0 e& d& G

8 u/ ~0 P" q6 ?( _. Q
关于Github- u" M! c. L; o7 I6 q5 q6 W1 _( [6 [
: A. g+ N! f* D/ K2 n5 C

9 |/ t& N6 R  f5 F1 O, B$ z
Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。
% r# |: a# J7 q% {

2 L6 H  }3 C8 Y& O7 _, uGitHub是一个通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。

) J6 a( P$ {. }5 _; G8 b* w
( ~8 M( p" }- A  ?, F
0?wx_fmt=png.jpg
先上一张图

1 [) J. C' Q2 j

: q. \% \2 S# O# \- ]# L* K4 n. H: Z
图片来自知乎。

8 ^# J% W' I& w3 w
4 A. t! l5 @( l3 C# Y
为什么会有这个需求。
% l0 ]% F% n  [6 i. J# |- k4 X' p/ {; [) L
目前Github作为一个全球最大的码(tong)农(xing)交友社区。也是最大的开源社区,但是它没有自动部署,在导航篇的时候我们说了。我们是一个,通过开源实际项目的方式给大家一个良好的体验。
8 j2 u  Y  o  P' d

! ]+ g3 w) y9 I8 ~4 e涉及到的技术也会用微软全家桶的方式来进行开发的。

! t2 l8 Q+ R* Z, |
5 i$ g$ M  V$ G7 o# }
恭喜VSTS开通香港节点
' G2 ~- n, Q& G+ P/ E0 i; I
5 C6 H. n9 u7 ]
# i# j5 E: ^' x  h  N, q
没有香港节点也就是东亚区域之前呢,大家只能从 美国中部、加拿大中部、西欧、印度南部、澳大利亚东部、巴西南部这几个节点选择账户所在区域。
9 i) {/ {* ?8 p3 b
5 y2 Q) P, ]7 D5 Z
这些节点都有一个特点,对我们国家不怎么友好。按照 Julia 的说法,我们国家强大的防火墙。恩恩。

2 i5 g# W) M) \9 u$ z
( x* {9 ^1 a4 s, e4 p, Y
在11月2日的微软科技大会上,微软研发部门的全球副总裁潘正磊女士宣布了微软研发云VSTS将于2017年底前落地中国香港。然后在10号的时候VSTS的老大布雷恩就宣布开通了VSTS在香港的节点。

8 U5 A9 s2 l. I# E* d# H

5 Z. P# V# J( ?! D6 z4 X这意味在大陆使用微软全家桶的速度, 蹭蹭噌的加速了。
1 L$ Z' b# Z" p
" Y/ i7 X( c' x8 R2 i* {6 K( C0 b
好了,闲话少叙。开始干吧!
- a! F& e! j+ V' A( o- K- Q" q9 p
$ o  \! I, ]% I8 j* [9 b) Q# f
注册VSTS
) t) G% \4 w( b
; s' N/ l' a6 O4 H1 E1 s# L
首先你要有一个微软邮箱,没有自己去注册。

# g5 P8 o: v# n6 Y$ b( g
! \, s2 x0 Y$ p& u( a
然后打开https://app.vsaex.visualstudio.com/me?mkt=zh-CN 新建账户。
( h3 k1 @8 E+ m; r3 s" V# e
% v0 ?- P: d- U% |8 a

. a4 ^' o  }( l2 R5 z
0?wx_fmt=png.jpg
image.png
9 c* C$ c. t4 K. Q
% |, s" K" m! L) f5 z
这里的所在地一定要选择东亚,因为其他地区的速度慢。
" w- n0 E! `# s- D6 i

: @% S& q. S$ E, Y
正文
6 h' ~9 m4 U6 m: E! {' R& m* I
+ M. r7 d0 g/ a$ P  h3 O
我们现在开始做一些正经事。
+ w7 M5 q, v9 {) Y$ Q

, \9 d( p- g/ n* t
  • 首先创建一个新项目
    $ F  W* N- L! W/ _
    0?wx_fmt=png.jpg
    image.png
    # d; t3 i: \. V. I& a8 U' \! L

9 p0 q! y6 y  U' G5 v3 Y
  • 创建完毕后,进入项目。
    9 v- P) @: |* k9 ~, [3 S3 t
    0?wx_fmt=png.jpg
    image.png

    ' q  T# \& h4 w8 p+ p2 d" N
  @$ A: k- H5 {- w" X$ {! Q

" E8 ~) D+ F& H: S2 L! J
  • 在Build And Release 菜单栏下的Builds中,选择新建一个“Empty process” 。
    7 Y% a3 _* |. d) c你可以给这个任务创建一个名字,然后这里有几个队列,我们选择"Hoste vs2017"的队列
    , Y: N& q, Q" @7 p6 v
    0?wx_fmt=png.jpg
    image.png
    & O7 ]+ N  a6 K* s. _: N# ^6 ~

! [6 W/ W. s: D2 i7 P6 C( c: J! Y
4 H6 O2 E) J" g7 M
  • 然后选择“Get Sources” ,选择github。
    0 |2 G$ I' n. ]7 f" h3 w
    0?wx_fmt=png.jpg
    image.png

    ( m6 s2 k1 V9 C! W- G1 R  n/ [0 {
    这里需要你的github账户授权,这里你可以选择用网页授权还是用个人密钥授权。' S: y3 {3 @/ p& R! b# r! f! E
    我们采用Authorize using OAuth,然后这里请注意,弹窗很容易被拦截。+ {# ?4 U: w  s4 q( W# F
    这里你要允许弹出。

    . j( o4 B' @3 k1 W+ r
    0?wx_fmt=png.jpg
    image.png

    $ ]; e5 r' f- N$ p7 T1 g授权成功后,可以看到你github中仓库的信息。% k" }$ h7 Y. L
    0?wx_fmt=png.jpg
    image.png

    1 d5 ^5 q% s7 k% ]

/ R8 B, i9 l% p0 l" P: A/ H
9 y3 g. k% h* l+ Z. I0 b: p
  • 然后选择菜单栏上的“Triggers”触发器按钮。打开触发器,
    6 o& ?# \, q, A8 s
    0?wx_fmt=png.jpg
    image.png

    ) h1 q; c* \. N' B- y1 H
; S7 L% T/ k+ h# [4 {  z
  • 选择Options配置下信息。

    ( |$ O( O1 s6 Y/ w( C6 K7 o1 p
    0?wx_fmt=png.jpg
    image.png

    , t3 ]( e# p3 i. ^: M5 }
    最后,右上角“Save& queue”保存。

    ( i- W) M6 ]% J6 a0 t
    0?wx_fmt=png.jpg
    保存信息
    1 H8 A5 G0 r; G- b5 I$ |5 U3 j5 r

9 C+ r# Z: f- q4 d# D2 A, K

+ E1 @5 ^% G# w6 q2 G& ^& I
  • Build number format 是指创建生成的生成码。你可以试试。

    % V3 J  m2 |# r" w2 j6 t5 v
5 ^/ ]9 B0 v8 Q( x; A: I
至此整个功能配置已经完毕了。
) C# d+ s& c5 R* t. E

% k2 s2 I" N1 ^* P$ h1 K/ v
使用VSTS给github的README 文件创建构建状态
$ O' g" g4 P( m/ f7 x7 P$ T1 N) n: c- @7 `, O" i$ n
5 @4 X+ o. i3 _* t" z
构建完毕了,我们来看看怎么让逼格显得稍微高大上点。打开我们的github项目。
! K" K  O" n8 Z# G$ B* f
$ Q9 Z! S1 Y' t
8 k5 s' u) @$ L" H+ ?/ c
0?wx_fmt=png.jpg
image.png
& {  }8 p: x/ j
以上效果图!!!

& J% z8 T* A( u" I) y- C8 b

7 N. N( A+ }  {8 }链接地址:https://github.com/ltm0203/aspnetcore

) r) ~: q% D- V- I* r5 }
+ ?! B  |& G' I4 I
我们在VSTS中为项目创建一个自定义的通知消息,方法是利用VSTS的构建生成的URL,利用markdown的语法来完成。
* o* \" O; z& j% m' I8 C0 @' T
" t: v+ I; w8 f3 q% f; X; `% E8 C
  • 首先在打开你的github,导航到你所在的仓库,这里我们使用的是aspnetcore项目中。

    , Y& O3 ]4 }* y

& Q$ g' F6 Y: C

: Z; m7 m6 z) \
  • 创建一个README.md的文件。
    0 Q' [" C+ I9 E9 y3 C  _+ R) o; Q

% i1 r5 E, z6 S
/ C; m( \1 |- q- Q5 H9 {6 C
  • 然后将vsts中生成的徽章标记链接,粘贴到README.md文件中即可。, n& ?' Q) r- y5 }  s* `
    代码段:

    - N/ `) Y0 C% O) u) S. G8 H) y: I

* ~% {2 ~! D5 B* W[<img src="https://ltm0203.visualstudio.com/_apis/public/build/definitions/06667c49-f49d-4e3b-8eda-1ee96b1914c7/1/badge">](https://51abp.visualstudio.com/_ ... 48d80437520/1/badge)4 m5 b9 d% m/ q9 z6 L( Z0 p

2 `3 z: c( @3 [0 `6 I
, M2 `9 T! r& z. m* H% B- a
vsts中生成的徽章URL:

9 h: h. r) ^, ^1 n
$ C# j. C3 k+ R7 N7 F. O
0?wx_fmt=png.jpg
徽章URL.png

( o* |1 S+ p8 K. Q( H/ J
- R- \+ v, F! g/ u2 A2 |0 B" s
  • 在github项目中的"Setting"中,打开webhooks,可以看到你绑定的webhook。每次对GitHub仓库的提交都会触发VSTS中的构建。
    4 I" _( w: Z) e0 A2 N) n4 L
4 K. Q' C* N" a
  • 我们返回到vsts中,打开build。可以看到我们创建的队列。

    ; `) a0 ^8 f, m1 o7 Z2 S3 X& K9 L) P1 ~4 h
    0?wx_fmt=png.jpg
    image.png

    , l. o/ D2 |7 C, _% w6 U4 o
    这里可以看到更加详细的统计信息,你编译的次数,状态,每次提交的信息等等。

    . y/ h3 H4 x0 N. `' p

6 k2 K* B. f* K: B

1 D) K9 q0 x, i! v实际开发呢?
  S" ]! r9 U) D; E8 }9 N: ~- Q3 V- p, l8 ?; y, l. b6 b

1 V* N3 G' c* m# n) j8 O! W( c2 E
在实际开发的项目中,我们更多的时候,是一个几个功能写好了才提交一次,而当前的情况每个文件发生变化就编译一次,这稍微有点不合理。我们通过对队列任务这里你可以随意取一个名字的进行修改,让项目编译更加的合理。修改为每提交一次才编译。
; O( f# [" @  |( M
3 g1 a. s- H/ z4 |' W8 F8 {
  • 打开VSTS,点击“Build & Release”,再点击“Builds”,找到任务名称“这里你可以随意取一个名字”,然后点击“Edit”按钮。
    % R& R* r2 H' N

3 ~  f8 Y" x9 }1 H8 M, Q; O
  • 点击‘Trigger’.修改起来也很简单。。

    4 ]% J. M; G4 p! w' I
    0?wx_fmt=png.jpg
    看这里.png

    ; h  H* i: v4 H. H) r
    修改为如图所示即可。
    ! u  ^5 g: L; h8 r5 F

; o. Y0 @/ b% U6 {+ O% {
6 i& F2 G: T: X+ ]* [6 e
  • 然后点击Save & queue,再点击Save。

    & z% d3 p# \+ _7 }( v
9 ?2 b  c9 {( p% v
总结
/ U" K' P9 J" s* x8 R/ |3 e% x& J( v: a4 d- J
以上就是利用Vsts自动编译构建项目的完成,然后在github项目中看到项目的构建状态!

/ E. S) r7 l8 J, I" c
3 |$ S0 f+ u7 r+ c
核心是为了解决帮助大家在开发过程进行的日常编译问题。自动化构建。
+ z* {5 z0 P  R. W( [

& Z7 g: Q/ Y& qVSTS的整体功能肯定不止这么一点,在后面的日子内,我会带着大家慢慢玩!

4 q8 {6 v# b, c
* O- ^, ~1 N$ v* P8 r8 {3 B
原创:梁桐铭

8 R3 C  K/ b5 a% l& X5 ^9 j3 k+ N4 s. r
# p: j$ c- \* m. Y. b
0 S6 V( C8 e) ^- ?! t( l




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

本版积分规则

参加 ITIL 4 基础和中级专家认证、v3专家升级、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, 2021-12-2 23:38 , Processed in 0.140001 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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