Continuous Integration Quickstart

Introduction to Continuous Integration as a Technical Practice (which you could also follow manually).

Examples with Jenkins as an enabling tool.

Continuous Integration > Jenkins

Code & Slides

https://github.com/carlobonamico/continuous-integration-quickstart


Requirements

Java 11


Getting Started

Download Jenkins LTS WAR


Security Warning

With great power comes great responsibility

Jenkins is an extremely powerful tool, able to:

  • access to source code
  • execute potentially arbitrary commands
  • generate binaries which get deployed in your environments

which open to both Supply Chain and command execution attacks.

Security must be a primary concern


Continuous Integration

https://martinfowler.com/articles/continuousIntegration.html


The Ten Principles

https://www.slideshare.net/carlo.bonamico/continuous-integration-with-hudson


From Hudson to Jenkins

Kohsuke Kawaguchi https://github.com/kohsuke

Not just Jenkins

  • Stapler (great grandparent of JAXRS)
  • myriad of libraries and tools

Next steps

Jenkins Pipelines (& Blue Ocean UI) https://www.jenkins.io/doc/book/pipeline/


References

https://www.slideshare.net/carlo.bonamico/continuous-integration-with-hudson

https://maven.apache.org/download.cgi https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.zip


With Docker

docker pull jenkins/jenkins:lts-jdk11

https://hub.docker.com/r/jenkins/jenkins