git+jenkins+rex presentation

Post on 06-May-2015

330 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Git+Jenkins+Rex

just another git+jenkins+rex presentation

By: ruckuus@gmail.com

What is Git?

● It's a history tracker

What is Github?

● http://learn.github.com/p/intro.html

What Is Jenkins?

● You can let Jenkins type for you the way you want it to be

Git+Jenkins

● Just like SVN+Jenkins● Authentication

– Public key: /home/user/.ssh/id_rsa.pub

– Private key: /home/user.ssh/id_rsa

Git from developer PoV

● Get the working copygit clone git@github.com:twitter/bootstrap.git

git clone https://github.com/twitter/bootstrap.git

git clone git://github.com/twitter/bootstrap.git

● Select branchgit checkout master

● Create a new working branchgit checkout -b PRODUCTBACKLOG-2000 master

git checkout -b <NEW_BRANCH> <REFERENCE_BRANCH>

git checkout -b <NEW_BRANCH> #default is current branch

Git from developer PoV

● Commit changes

git commit

git commit -m

git commit -a -s

● Rebase

“Put your local changes as the latest changes from the rebasee branch on your local working copy”

Rebase

● Put your local changes as the latest changes of the universe.– You have the latest status of the collaboration

branch.

– Your change is just an addition, won't conflict to others'.

– Safer than merge

– http://mislav.uniqpath.com/2013/02/merge-vs-rebase/

Rebase Mechanics

Git from Jenkins PoV

● Our Jenkins deploys from feature branch, NOT from integration branch

● Not from master● Not from origin/master● Why? We need it● We don't maintain build history since the

branch is inconsistent in every build

Git from Jenkins PoV

● Build is parameterized– Branch's name

– Target server

● Always checkout a new copy● git checkout -b b-XyZ-PRODUCTBACKLOG-2000 origin/PRODUCTBACKLOG-2000

● Build

● Deploy to target server

Rex

● An instrument to build and deploy● We have several groups of servers

– They have different purpose

– Different version of code

– Different user

● http://rexify.org● deploy/Rexfile

How To Rex?

● rex -T● rex -E integration do_deploy –target=platform● rex -E staging do_deploy –target=th● Relax, it's all done by Jenkins.

top related