Download presentation
Presentation is loading. Please wait.
Published byAllyson Bloodworth Modified over 9 years ago
1
Jenkins User Conference San Francisco, Oct 2nd 2011 Continuous Deployment with Gerrit and Jenkins R. Tyler Croy Lookout, Inc. http://mylookout.com/about/j obs
2
Jenkins User Conference San Francisco, Oct 2nd 2011 Who is this guy?
3
Jenkins User Conference San Francisco, Oct 2nd 2011 I work here
4
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/114
5
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/115
6
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/116
7
Jenkins User Conference San Francisco, Oct 2nd 2011 Brief overview of Continuous Deployment Meet Gerrit A Basic Commit-to-Deploy Pipeline Multiple branches with Gerrit + Jenkins The Human Factor Pro-tips/best practices
8
Jenkins User Conference San Francisco, Oct 2nd 2011 Continuous Deployment
9
Jenkins User Conference San Francisco, Oct 2nd 2011 What it isn't
10
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1110
11
Jenkins User Conference San Francisco, Oct 2nd 2011 What it is
12
Jenkins User Conference San Francisco, Oct 2nd 2011 Who is using it?
13
Jenkins User Conference San Francisco, Oct 2nd 2011 Why Code Review?
14
Jenkins User Conference San Francisco, Oct 2nd 2011 Why Code Review?
15
Jenkins User Conference San Francisco, Oct 2nd 2011 Meet Gerrit
16
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1116
17
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1117 As a code review tool
18
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1118 As a code review tool
19
Jenkins User Conference San Francisco, Oct 2nd 2011 As a Git repository server ~ % git checkout -b change-4 Switched to a new branch 'change-4' ~ % git fetch gerrit refs/changes/04/4/1 From gerrit:ttyclock * branch refs/changes/04/4/1 - > FETCH_HEAD ~ % git cherry-pick FETCH_HEAD Finished one cherry-pick. [change-4 1d4351c] Greatly improve the stability of tty-clock 1 files changed, 3 insertions(+), 0 deletions(-) ~ %
20
Jenkins User Conference San Francisco, Oct 2nd 2011 As a collaboration tool
21
Jenkins User Conference San Francisco, Oct 2nd 2011 As a collaboration tool
22
Jenkins User Conference San Francisco, Oct 2nd 2011 As a collaboration tool
23
Jenkins User Conference San Francisco, Oct 2nd 2011 As a collaboration tool
24
Jenkins User Conference San Francisco, Oct 2nd 2011 Code Review “Points”
25
Jenkins User Conference San Francisco, Oct 2nd 2011 Code Review “Points”
26
Jenkins User Conference San Francisco, Oct 2nd 2011 Changes in Gerrit Change 123 Patchset 1 Patchset 2 Commit 41dbe5 Commit cdeb34
27
Jenkins User Conference San Francisco, Oct 2nd 2011 Changes in Gerrit Change 123 Patchset 1 Patchset 2 Commit 41dbe5 Commit cdeb34
28
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1128
29
Jenkins User Conference San Francisco, Oct 2nd 2011 Developer Workflow
30
Jenkins User Conference San Francisco, Oct 2nd 2011 The Gerrit Flow gerritupstream dev-adev-b
31
Jenkins User Conference San Francisco, Oct 2nd 2011 Flow of changes Create Local Branch % git checkout -b topic-branch work Push to Gerrit % git push gerrit HEAD:refs/for/master
32
Jenkins User Conference San Francisco, Oct 2nd 2011 Flow of changes Create Local Branch % git checkout -b topic-branch work Push to Gerrit % git push gerrit HEAD:refs/for/master
33
Jenkins User Conference San Francisco, Oct 2nd 2011 Flow of changes Create Local Branch work Push to Gerrit Review Fix commit Upstream repo rejecte d approved/ submitted rebased!
34
Jenkins User Conference San Francisco, Oct 2nd 2011 Flow of changes Create Local Branch work Push to Gerrit Review Fix commit Upstream repo rejecte d approved/ submitted rebased!
35
Jenkins User Conference San Francisco, Oct 2nd 2011 Your development workflow in commands git checkout -b local-topic-branch work work work git rebase -i upstream/master # fix up commits git push gerrit HEAD:refs/for/master Create new commits based on reviews git rebase -i upstream/master # squash up git push gerrit HEAD:refs/for/master
36
Jenkins User Conference San Francisco, Oct 2nd 2011 REBASE IS SCARY (but necessary)
37
Jenkins User Conference San Francisco, Oct 2nd 2011 How it works AB AB DE C upstream/master local-topic-branch % git rebase upstream/master
38
Jenkins User Conference San Francisco, Oct 2nd 2011 How it works AB AB DE C upstream/master local-topic-branch C
39
Jenkins User Conference San Francisco, Oct 2nd 2011 How it works AB AB DE C upstream/master local-topic-branch C % git rebase -i upstream/master Change-Id: Icde43 Change-Id: I51bdc2
40
Jenkins User Conference San Francisco, Oct 2nd 2011 ~ % git rebase -i origin/master pick e59df21 Greatly improve the stability of tty-clock squash 6c1ffe1 Fix some whitespace [detached HEAD 785692b] Greatly improve the stability of tty-clock 1 files changed, 2 insertions(+), 0 deletions(-) Successfully rebased and updated refs/heads/change-4. ~ %
41
Jenkins User Conference San Francisco, Oct 2nd 2011 How it works AB AB DE C upstream/master local-topic-branch C Change-Id: Icde43
42
Jenkins User Conference San Francisco, Oct 2nd 2011 How it works AB AB DE C upstream/master local-topic-branch C Change-Id: Icde43
43
Jenkins User Conference San Francisco, Oct 2nd 2011 Gerrit Trigger Plugin
44
Jenkins User Conference San Francisco, Oct 2nd 2011 Creating a role account ~ % ssh gerrit gerrit create-account
45
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1145 gerrit Jenkins Streamed events over SSH Commands sent over SSH
46
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1146
47
Jenkins User Conference San Francisco, Oct 2nd 2011 A simple pipeline
48
Jenkins User Conference San Francisco, Oct 2nd 2011 Creating a Jenkins “verifier” job
49
Jenkins User Conference San Francisco, Oct 2nd 2011 Creating a Jenkins “verifier” job
50
Jenkins User Conference San Francisco, Oct 2nd 2011 Creating a Jenkins “verifier” job
51
Jenkins User Conference San Francisco, Oct 2nd 2011 Create Local Branch work Push to Gerrit Review Fix commit Upstream repo Flow of changes Verification Job Build Fails! (-1, Not Verified) Success! (+1, Verified)
52
Jenkins User Conference San Francisco, Oct 2nd 2011 Create Local Branch work Push to Gerrit Review Fix commit Upstream repo Flow of changes Verification Job Build Fails! (-1, Not Verified) Success! (+1, Verified)
53
Jenkins User Conference San Francisco, Oct 2nd 2011 Deployment gerritupstream dev-adev-b Release Build Release Test Release Deploy
54
Jenkins User Conference San Francisco, Oct 2nd 2011 Deployment upstream Release Build Release Test Release Deploy Downstream Job Production machines rsync/ cap/ scp/ mvn
55
Jenkins User Conference San Francisco, Oct 2nd 2011 Deployment upstream Release Build Release Test Release Deploy Downstream Job Production machines rsync/ cap/ scp/ mvn
56
Jenkins User Conference San Francisco, Oct 2nd 2011 Multiple Branches
57
Jenkins User Conference San Francisco, Oct 2nd 2011 Creating the branches in Gerrit
58
Jenkins User Conference San Francisco, Oct 2nd 2011 Creating the branches in Gerrit ~ % git push gerrit release-1.0
59
Jenkins User Conference San Francisco, Oct 2nd 2011 From the developer point of view ~ % git checkout -b relfix –track upstream/release-1.0 ~ % # work work work ~ % git add/commit ~ % git push gerrit HEAD:refs/for/release- 1.0
60
Jenkins User Conference San Francisco, Oct 2nd 2011 From the Jenkins point of view
61
Jenkins User Conference San Francisco, Oct 2nd 2011 From the Jenkins point of view
62
Jenkins User Conference San Francisco, Oct 2nd 2011
63
Jenkins User Conference San Francisco, Oct 2nd 2011 The Human Factor
64
Jenkins User Conference San Francisco, Oct 2nd 2011 Working with changes “in review”
65
Jenkins User Conference San Francisco, Oct 2nd 2011 Working with “in-review” changes ~ % git checkout -b topic-with-17 ~ % git fetch gerrit refs/changes/17/17/1 ~ % git cherry-pick FETCH_HEAD ~ % # work work commit work work commit
66
Jenkins User Conference San Francisco, Oct 2nd 2011 Working with “in-review” changes AB C1 AB DE Developer 1 Developer 2
67
Jenkins User Conference San Francisco, Oct 2nd 2011 Working with “in-review” changes AB C2 AB C1DE Developer 1 Developer 2
68
Jenkins User Conference San Francisco, Oct 2nd 2011 Working with “in-review” changes AB AB C1DE Upstream Developer 2 BC2
69
Jenkins User Conference San Francisco, Oct 2nd 2011 Working with “in-review” changes ~ $ git rebase gerrit/master First, rewinding head to replay your work on top of it... Applying: Unused variable Using index info to reconstruct a base tree... Falling back to patching base and 3-way merge... Auto-merging ttyclock.c CONFLICT (content): Merge conflict in ttyclock.c Failed to merge in the changes. Patch failed at 0001 Unused variable When you have resolved this problem run "git rebase -- continue". If you would prefer to skip this patch, instead run "git rebase --skip". To restore the original branch and stop rebasing run "git rebase --abort". ~ $ git rebase --skip HEAD is now at edff388 Unused variable Applying: Local change ~ $
70
Jenkins User Conference San Francisco, Oct 2nd 2011 Working with “in-review” changes AB AB DE Upstream Developer 2 C2
71
Jenkins User Conference San Francisco, Oct 2nd 2011 Picking up changes AB C1 AB Developer 1 Developer 2
72
Jenkins User Conference San Francisco, Oct 2nd 2011 Picking up changes AB C1 AB C2 Developer 1 Developer 2
73
Jenkins User Conference San Francisco, Oct 2nd 2011 Performing manual verification by QA
74
Jenkins User Conference San Francisco, Oct 2nd 2011 Manual verification
75
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1175 Kick-off deployments with the Promoted Builds plugin
76
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1176
77
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1177
78
Jenkins User Conference San Francisco, Oct 2nd 2011 Pro Tips
79
Jenkins User Conference San Francisco, Oct 2nd 2011 Use “squash” or “fixup” to condense changes
80
Jenkins User Conference San Francisco, Oct 2nd 2011 Create per-topic/ticket local branches for clearer isolation of work
81
Jenkins User Conference San Francisco, Oct 2nd 2011 Multiple jobs with the same trigger criteria
82
Jenkins User Conference San Francisco, Oct 2nd 2011 Investigate the EC2 plugin for burstable testing capacity
83
Jenkins User Conference San Francisco, Oct 2nd 2011 Gotchas and Errata
84
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1184
85
Jenkins User Conference San Francisco, Oct 2nd 2011 “Dependencies” in Gerrit
86
Jenkins User Conference San Francisco, Oct 2nd 2011 “Dependencies” in Gerrit
87
Jenkins User Conference San Francisco, Oct 2nd 2011 “Dependencies” in Gerrit
88
Jenkins User Conference San Francisco, Oct 2nd 2011 Final Thoughts
89
Jenkins User Conference San Francisco, Oct 2nd 2011 Final Thoughts
90
Jenkins User Conference San Francisco, Oct 2nd 2011 Final Thoughts
91
Jenkins User Conference San Francisco, Oct 2nd 2011 Final Thoughts
92
Jenkins User Conference San Francisco, Oct 2nd 2011 Final Thoughts
93
Jenkins User Conference San Francisco, Oct 2nd 2011 Thank You To Our Sponsors
94
Jenkins User Conference San Francisco, Oct 2nd 2011 10/2/1194 Q&A and Links Gerrit: http://code.google.com/p/gerrithttp://code.google.com/p/gerrit Gerrit Trigger Plugin: http://urlenco.de/oyhmac http://urlenco.de/oyhmac These slides (w/ notes): http://urlenco.de/vhqjl http://urlenco.de/vhqjl
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.