The practical part of a two-part presentation given to university students about the process of deploying software.
what happend till now ?
View Slide
“In theory, there is no difference betweentheory and practice. But in practice, thereis.” - Yogi Berra
Kontinuierliche Integration ist ein Begriff aus der Software-Entwicklung,der den Prozess des fortlaufenden Zusammenfügens vonKomponenten zu einer Anwendung beschreibt. […]- Wikipedia
code
production
Continous what?CI in the real worldDeploy softwarein the 21th centuryMarcel Neidingerm.neidinger (at) unibas.ch
- Yogi BerraDesigning CI Pipelines
Designing CI PipelinesSCMChangesCodecompilecheckreportreportexecutable
Designing CI PipelinesSCMChangesCodecompilecheckreportreportexecutableUnit TestsIntegration TestsCode coverageMemory leaksTranslation checks …
Designing CI PipelinesSCMChangesCodecompilecheckreportreportexecutableE-MailChatOpsIssues…
toolsto the rescue
Jenkins
JenkinsWeb Servicecloud before it was coolLanguage agnosticYou „could“ do ASM with itPluggableThere’s an app plugin for it
Jenkinsis pretty damn coolTo summarize
Setup Jenkins# On Ubuntu/Debian$ wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -$ echo ‘’deb http://pkg.jenkins.io/debian-stable binary/’’>/etc/apt/sources.list.d/jenkins.list'$ sudo apt-get update$ sudo apt-get install jenkins# On Arch Linux$ sudo pacman -S jenkins$ sudo systemctl enable jenkins# On Gentoo$ open https://wiki.archlinux.org/index.php/installation_guide
Some people think that R is the rightlanguage for this. We call them „wrong“- altered after Joel Grusbash
bash python
python pythonfabric+I am in no way affiliated with Disney but if anybodycould get me a sponsoring with them that would be great.
pythonfabric+# On Ubuntu/Debian$ pip2 install fabric# or$ sudo apt-get install fabric
TaskTaskpythonfabric+fabfile.pyRemoteHost #1RemoteHost #2RemoteHost #n…Task
Taskpythonfabric+run() put() get() local()
lazytime is over!