1991, Booch menthod integrating introduced
1994, Analysis and design with apps
1997, Extreme programming
1998, Face to face
1999, Book
2001
Integration bugs detected early
Avoids chaos at release dates
Availability of a "current" build
Reducing overheads
Reverting small number changes
Automating processes
Instant feedback on local changes
Analyzing and reporting
Increases confidence
Maintain a code repository
Automate the build
Make the build self-testing
Commits to the baseline daily
Every commit should be built
Keep the build fast
Test in a clone of the prod env
Every see the latest results
Automate deployment
Java
Jenkins
Node
Virtual Machine
Vagrant
Git
Code Editor
Browser
Terminal
https://github.com/stremann/vagrant-jenkins-node
# Vagrantfile API/syntax version.
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "puphpet/debian75-x64"
# Publish guest port 6060 on host port 6060
config.vm.network "forwarded_port", guest: 6060, host: 6060
config.vm.provider "virtualbox" do |vb|
# Use VBoxManage to customize the VM. For example to change memory:
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
# Provision the box using a shell script
config.vm.provision :shell, :privileged => true, :path => "provision.sh"
end
vagrant up
localhost:6060
vagrant ssh
sudo cat password
GitHub
Clover
Checkstyle
TAP
Build Status
NodeJS
https://github.com/stremann/jenkins-example