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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

艾拓先锋
搜索
查看: 377|回复: 0

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

[复制链接]
来自- 日本

参加活动:0

组织活动:0

发表于 2018-11-18 15:54:11 | 显示全部楼层 |阅读模式 来自- 日本
本帖最后由 adminlily 于 2018-11-18 16:07 编辑 , F- ~& M9 n2 J

0 r+ g* v4 `8 h% [; B
“ 工欲善其事,必先利其器。磨刀不误砍柴工!”
4 t( f) h2 G- H" e- i0 X
: \/ k8 x5 p  W! V2 Q
  • 管理工具会VSTS。
    0 [& s- ~7 [0 Z7 f" W$ e1 y& V

/ z3 q, Y) P: j
: s1 q. O+ n1 \; y: l
  • 代码管理会用GITHUB。
    ! p, p. O) J+ K3 |& @
( L. I* X+ F* A! C0 v+ J# m

1 B5 P  O- l5 n1 D! }3 ]8 ]4 \! \
  • 服务器会用Azure。

    , L' w0 k8 M6 \  ?  S9 m

    3 |. y" l" V& y% B, T3 A
    所有的东西都是利用现有服务。不会说自己从虚拟机开始玩。我们就专注于写代码。
# f; ^- ^  Q, d3 w: e1 `
/ e$ z. _2 W5 }. N
什么是VSTS?$ h0 t! b2 T. h
VSTS的全称是Visual Studio Team System。

% a5 {& i1 j5 s- A1 k

* x* K( ^/ v) ]5 l介绍VSTS之前先说下TFS(Team Foundation Server)。
1 o) j( }$ l& F6 p4 ~/ J9 T

, q, h) u- O# l7 d# h  v% ?
TFS是微软推出的一款ALM(Application Lifecycle Management)软件生命周期管理工具。通过它你可以从代码管理->代码版本管理->项目管理->持续集成->自动发布->自动测试等一系列软件生命周期在内的全家桶功能。
- r8 ?; X4 }2 H: v! {

$ }% _' K7 Y5 T
VSTS(Visual Studio Team System)是基于SaaS(多租户)化TFS的云产品。
, I& O$ A- @0 k/ R- R% z( b

$ }( G, V2 U/ I3 |2 `9 Q4 n. @听了之后是不是感觉很强大。
, h: b* T8 [! }+ c
& r% u' E5 n" k  T0 O) y: ?
关于Github0 y7 I% ~! O3 \) E

, Q2 @) w4 w. j/ K
# p% M, f) g5 r, M& I
Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。
; l% \* L' n6 r8 B

% U& v% E, p+ Y9 }GitHub是一个通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。
; U/ Y* C4 Q8 a: g3 g$ ~

- L: E5 k' i" F
0?wx_fmt=png.jpg
先上一张图
4 A" I+ M1 W' d& F
+ y+ w/ _) Q  ^
图片来自知乎。

" b& r& H: J  o
* q' a* i5 B/ n4 g- U
为什么会有这个需求。
6 R; l3 t! @2 y1 F$ l; C
% L  _+ {, p& g. q8 R3 g) U
目前Github作为一个全球最大的码(tong)农(xing)交友社区。也是最大的开源社区,但是它没有自动部署,在导航篇的时候我们说了。我们是一个,通过开源实际项目的方式给大家一个良好的体验。

- |2 {- d4 }1 u! h0 Z, }, s' Y
5 m+ i, S6 ?, b3 W+ d
涉及到的技术也会用微软全家桶的方式来进行开发的。
2 V0 _3 @$ s' u

9 |) e4 A( Y3 K0 H
恭喜VSTS开通香港节点
$ X9 F. r% W: E! O
2 _" X& h; f! P8 F7 F8 O6 Z  B& G$ |
; V+ F9 j: Q; n. v/ m( H- a
没有香港节点也就是东亚区域之前呢,大家只能从 美国中部、加拿大中部、西欧、印度南部、澳大利亚东部、巴西南部这几个节点选择账户所在区域。

' l  W  v4 d  f# ]: d

0 S2 ^+ f- `( R& r2 Q7 R+ y这些节点都有一个特点,对我们国家不怎么友好。按照 Julia 的说法,我们国家强大的防火墙。恩恩。

# ~1 `5 G; M* Y# u- X$ V/ I3 r
2 E+ p; N! H, I( l# A/ P
在11月2日的微软科技大会上,微软研发部门的全球副总裁潘正磊女士宣布了微软研发云VSTS将于2017年底前落地中国香港。然后在10号的时候VSTS的老大布雷恩就宣布开通了VSTS在香港的节点。

3 |$ \  x3 q# W4 ~0 w5 n3 q

8 f/ t) e; O, [2 u这意味在大陆使用微软全家桶的速度, 蹭蹭噌的加速了。
# }( X. \( n/ y% c5 S

8 B% D% [3 W) D1 H0 Z9 L$ I! j
好了,闲话少叙。开始干吧!
) j4 ]: I2 |8 {. f, b

* _& S) e8 O9 ]1 h& m" x9 ~
注册VSTS5 ?7 ^/ g1 x  `/ ^, {- S

4 [: }/ A2 d; R8 a6 L" s
首先你要有一个微软邮箱,没有自己去注册。
& F' e. c9 ^0 z9 ?7 ^- C1 Y

8 Z2 X0 p: w3 p  R0 l! Q, [然后打开https://app.vsaex.visualstudio.com/me?mkt=zh-CN 新建账户。6 p# I4 F- t0 b7 m

7 f8 ^& ]9 u. Q1 ^/ f5 ?% P
1 ]* u# f0 d: p5 }  V4 a; c
0?wx_fmt=png.jpg
image.png

' J- _& R; S- i. W) [8 `

' i' t; x5 r6 `3 S; T
这里的所在地一定要选择东亚,因为其他地区的速度慢。

. O5 S1 H- V# @2 m( m  S/ x
5 h1 E) T5 e2 w+ c
正文3 t9 Z% A' C6 `
$ \* j5 z. i7 g# H# Z
我们现在开始做一些正经事。
+ U) e( `3 R' k' @; M

. x1 f. D! ~* G& g# E. S. V
  • 首先创建一个新项目
    & |2 w  _5 W+ F: b. q
    0?wx_fmt=png.jpg
    image.png

    6 f& [+ X; I, ^

7 a! `! p8 O  g
  • 创建完毕后,进入项目。

    ! u* t0 c4 L0 ]# c2 C( p, f6 U
    0?wx_fmt=png.jpg
    image.png
    4 A7 C" \& N( `* M6 h% U. }3 c
! z/ T! X) ^. W1 Z" B+ N( m: K

: x0 d7 d  H$ d3 ?
  • 在Build And Release 菜单栏下的Builds中,选择新建一个“Empty process” 。
    ( N. S- g, }) p- {0 l" g; X5 x( e8 O$ a0 C你可以给这个任务创建一个名字,然后这里有几个队列,我们选择"Hoste vs2017"的队列

    6 D4 K1 K6 E" ?/ q/ L
    0?wx_fmt=png.jpg
    image.png
    : P, r9 I+ Y) y7 Y8 C2 q8 }
$ p, r4 X, X7 `% ]
" T8 w% a2 _$ g$ O0 u& n- A
  • 然后选择“Get Sources” ,选择github。

    , W  c# Q/ R1 n1 E
    0?wx_fmt=png.jpg
    image.png
    - V# l; ]" C' ]& T# i( T
    这里需要你的github账户授权,这里你可以选择用网页授权还是用个人密钥授权。
    , Q7 y2 G* M# g' o4 O我们采用Authorize using OAuth,然后这里请注意,弹窗很容易被拦截。7 F% q7 }4 F+ |; h4 \0 U( R( x
    这里你要允许弹出。

    . X; S& [8 e  ?  d) o
    0?wx_fmt=png.jpg
    image.png

    ( T+ p1 |7 N! O2 z1 Q/ }授权成功后,可以看到你github中仓库的信息。$ J; g7 g' i+ H
    0?wx_fmt=png.jpg
    image.png

    5 t% @8 e7 D4 v) w; `4 \# e
9 W! c- z7 q* d( w. y
: P2 S( g: j, Z- ~# s: f. N
  • 然后选择菜单栏上的“Triggers”触发器按钮。打开触发器,
    2 o; U% e9 P2 g% {! S
    0?wx_fmt=png.jpg
    image.png

    8 p0 Y9 m7 L7 U3 c# z9 ~3 E2 }- b

8 `- H0 M& D! x# H- g  \" W" X
  • 选择Options配置下信息。

    . r& D7 C: c+ G
    0?wx_fmt=png.jpg
    image.png

    ) W; T) U: T) z& N) a9 N0 G
    最后,右上角“Save& queue”保存。

    " C6 t& e: S- U3 ~
    0?wx_fmt=png.jpg
    保存信息
    ' l& ~" `& x1 J0 g# v+ o

  \  F& S+ P) g2 |; Y( R5 b. |  |

7 ?2 c1 L  h5 ]6 }2 m
  • Build number format 是指创建生成的生成码。你可以试试。
    & X; i( X7 H! V
! F+ {8 o8 g0 n1 i
至此整个功能配置已经完毕了。
( }) N2 o+ @" x7 \2 C9 {1 W7 R
1 X) v, w) q* d# |# N" M: b# o' M
使用VSTS给github的README 文件创建构建状态
1 d0 E. M8 W) k& d; e% U! t- m; C, L1 s2 v8 n5 n0 f3 I5 C. G
8 [* @  m5 B2 ?/ M+ v4 y. f
构建完毕了,我们来看看怎么让逼格显得稍微高大上点。打开我们的github项目。7 C" H" a0 O$ T5 k; [7 B  i
5 T1 a! c( y. A1 g3 I6 [

' i. }9 k  r5 j9 b( I7 x: w
0?wx_fmt=png.jpg
image.png

. }1 W2 l- v* ~$ j& j
以上效果图!!!

, M7 \2 w6 D/ z; t

8 j& i; W- F% R0 P$ |2 k. ], x链接地址:https://github.com/ltm0203/aspnetcore
! _( ?7 n. l1 S  K" ]4 v, D
& f2 I9 U8 |2 m9 p" z2 }
我们在VSTS中为项目创建一个自定义的通知消息,方法是利用VSTS的构建生成的URL,利用markdown的语法来完成。
/ _9 B& Q  s( e1 t
. H$ E' n1 w4 B" N. Z
  • 首先在打开你的github,导航到你所在的仓库,这里我们使用的是aspnetcore项目中。
    0 a' V' F4 J& b& l& Q

; S7 O! O! u& f3 s2 `; x
9 ~3 q) Q! \9 {6 D7 f
  • 创建一个README.md的文件。
    % f4 ?+ k$ O/ `, [- U3 v5 B4 s5 r

& L+ R# `5 R3 k
7 r9 H1 L* I, \
  • 然后将vsts中生成的徽章标记链接,粘贴到README.md文件中即可。
    5 r3 I- v5 O: G3 v: C) L5 P8 ~代码段:
    , g# K3 S/ a. I

( @: ~+ P/ G4 ^; z[<img src="https://ltm0203.visualstudio.com/_apis/public/build/definitions/06667c49-f49d-4e3b-8eda-1ee96b1914c7/1/badge">](https://51abp.visualstudio.com/_ ... 48d80437520/1/badge)
5 n. T  i: G/ u- ?4 K0 ~; _/ x
5 c% N2 C6 E. G+ P4 E  i% I

5 m0 ?9 w8 r' G
vsts中生成的徽章URL:
1 D5 K3 o4 u, y- U2 n) L' p1 d- ^
+ Y, [. i( u( _7 N4 Q* w
0?wx_fmt=png.jpg
徽章URL.png

( o: g% A4 S3 p% X" m9 Q2 Y9 K
* [' `& Q9 w) Y7 [
  • 在github项目中的"Setting"中,打开webhooks,可以看到你绑定的webhook。每次对GitHub仓库的提交都会触发VSTS中的构建。

    ; c( b1 {2 W0 c" A# f$ l; v
0 x! e1 N* ]+ s. ^4 _
  • 我们返回到vsts中,打开build。可以看到我们创建的队列。

    $ k- }, @4 T2 j) _( i* s
    0?wx_fmt=png.jpg
    image.png
    ( p2 H. t, K. L" n. B- u
    这里可以看到更加详细的统计信息,你编译的次数,状态,每次提交的信息等等。

    , Z+ L8 L# \; p4 a! I
' R  r1 R& G% x  Y
1 P6 o9 s* `' t8 ~: x$ m/ \
实际开发呢?
' U4 F+ g$ [# ^$ \/ a! y9 m: a: E2 J0 n
0 L- K+ n  J" B, {
在实际开发的项目中,我们更多的时候,是一个几个功能写好了才提交一次,而当前的情况每个文件发生变化就编译一次,这稍微有点不合理。我们通过对队列任务这里你可以随意取一个名字的进行修改,让项目编译更加的合理。修改为每提交一次才编译。
0 Q1 y1 y! ?4 m7 [" m( ]3 T# ?

+ p! t; J8 R+ f  ~! A4 w( \" N" h
  • 打开VSTS,点击“Build & Release”,再点击“Builds”,找到任务名称“这里你可以随意取一个名字”,然后点击“Edit”按钮。
    3 D( n2 Z/ Y5 y; H. A2 _) T

6 n" z" h/ K) y+ j5 Z1 ^/ x9 \
  • 点击‘Trigger’.修改起来也很简单。。
    9 k0 s1 ~$ P2 c# F: [
    0?wx_fmt=png.jpg
    看这里.png

    % i7 ?- `4 n' u, u" D. F
    修改为如图所示即可。
    7 c3 M& `; Y  r  [* h

. j& w+ k" F# I1 M& ^! O

4 i/ f) j0 ^, K- b, F
  • 然后点击Save & queue,再点击Save。

    : u; M- T1 M. I. _  ^0 e" Z

% l' K9 n9 ?- O, \) {  ^2 Q总结) h5 Q% ?! n5 b" a$ k
9 y) U9 m' n+ D1 r
以上就是利用Vsts自动编译构建项目的完成,然后在github项目中看到项目的构建状态!
5 a+ Z* e+ E) H$ c% o4 Z5 `. `( k

4 {( ^5 X6 s- M& J. s( |核心是为了解决帮助大家在开发过程进行的日常编译问题。自动化构建。

* X, S( B# a6 m- b9 Y

! {2 Y# r: {$ E3 r/ MVSTS的整体功能肯定不止这么一点,在后面的日子内,我会带着大家慢慢玩!

% d, S  T6 w! g4 S, D: S

/ e" o* E5 G7 W8 q* c
原创:梁桐铭
- n$ Q' F  i0 u' O1 Z- b

! I9 u& j. w: {( j
+ v' r9 z( Z' m* E

本版积分规则

选择云运维时代的王牌讲师-长河老师,助你轻松入门ITIL Foundation培训课程

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

Baidu

GMT+8, 2019-4-25 00:19 , Processed in 1.157683 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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