Learning continuous integration with Jenkins a beginner's guide to implementing continuous integration and continuous delivery using Jenkins 2

Speed up the software delivery process and software productivity using the latest features of Jenkins About This Book Take advantage of a Continuous Integration and Continuous Delivery solution to speed up productivity and achieve faster software delivery See all the new features introduced in Jenki...

Descripción completa

Detalles Bibliográficos
Otros Autores: Pathania, Nikhil, author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham : Packt Publishing [2017]
Edición:2nd edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009631645006719
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright
  • Credits
  • About the Author
  • About the Reviewer
  • www.PacktPub.com
  • Customer Feedback
  • Table of Contents
  • Preface
  • Chapter 1: Concepts of Continuous Integration
  • Software Development Life Cycle
  • Requirement analysis
  • Design
  • Implementation
  • Testing
  • Evolution
  • Waterfall model of software development
  • Disadvantages of the Waterfall model
  • Advantages of the Waterfall model
  • Agile to the rescue
  • The twelve agile principles
  • How does the Agile software development process work?
  • Advantages of Agile software development process
  • The Scrum framework
  • Important terms used in the Scrum framework
  • How does Scrum work?
  • Sprint Planning
  • Sprint cycle
  • Daily Scrum meeting
  • Monitoring Sprint progress
  • Sprint Review
  • Sprint Retrospective
  • Continuous Integration
  • Agile runs on CI
  • Types of projects that benefit from CI
  • Elements of CI
  • Version control system
  • Branching strategy
  • GitFlow branching model
  • CI tool
  • Self-triggered builds
  • Code coverage
  • Code coverage tools
  • Static code analysis
  • Automated testing
  • Binary repository tools
  • Automated packaging
  • Benefits of using CI
  • Freedom from long integrations
  • Metrics
  • Catching issues faster
  • Rapid development
  • Spend more time adding features
  • Summary
  • Chapter 2: Installing Jenkins
  • Running Jenkins inside a servlet container
  • Prerequisites
  • Installing Java
  • Installing Apache Tomcat
  • Enabling the firewall and port 8080
  • Configuring the Apache Tomcat server
  • Installing Jenkins on the Apache Tomcat server
  • Installing Jenkins alone on an Apache Tomcat server
  • Setting up the Jenkins home path
  • Installing a standalone Jenkins server on Windows
  • Prerequisites
  • Installing Java
  • Installing the latest stable version of Jenkins.
  • Starting, stopping, and restarting Jenkins on Windows
  • Installing a standalone Jenkins server on Ubuntu
  • Prerequisites
  • Installing Java
  • Installing the latest version of Jenkins
  • Installing the latest stable version of Jenkins
  • Starting, stopping, and restarting Jenkins on Ubuntu
  • Installing a standalone Jenkins server on Red Hat Linux
  • Prerequisites
  • Installing Java
  • Installing the latest version of Jenkins
  • Installing the latest stable version of Jenkins
  • Starting, stopping, and restarting Jenkins on Red Hat Linux
  • Running Jenkins behind a reverse proxy
  • Prerequisites
  • Installing and configuring Nginx
  • Configuring the firewall on a Nginx server
  • Starting, stopping, and restarting the Nginx server
  • Securing Nginx using OpenSSL
  • Creating an SSL certificate
  • Creating strong encryption settings
  • Modifying the Nginx configuration
  • Enabling the changes and testing our Nginx setup
  • Configuring the Jenkins server
  • Adding reverse proxy settings to the Nginx configuration
  • Running Nginx and Jenkins on the same machine
  • Running Jenkins on Docker
  • Prerequisites
  • Setting up a Docker host
  • Setting up the repository
  • Installing Docker
  • Installing from a package
  • Running the Jenkins container
  • Running a Jenkins container using a data volume
  • Testing the data volume
  • Creating development and staging instances of Jenkins
  • Prerequisites
  • Creating an empty data volume
  • Copying data between data volumes
  • Creating the development and staging instances
  • Summary
  • Chapter 3: The New Jenkins
  • The Jenkins setup wizard
  • Prerequisites
  • Unlocking Jenkins
  • Customizing Jenkins
  • Creating the first admin user
  • The new Jenkins pipeline job
  • Prerequisite
  • Creating a Jenkins pipeline job
  • The Global Tool Configuration page
  • Jenkins pipeline Stage View
  • Declarative Pipeline syntax.
  • Basic structure of a Declarative Pipeline
  • The node block
  • The stage block
  • Directives
  • Steps
  • Jenkins pipeline syntax utility
  • Prerequisite
  • Installing the Pipeline Maven Integration Plugin
  • Creating a Jenkins pipeline using the pipeline syntax utility
  • Multibranch pipeline
  • Prerequisite
  • Adding GitHub credentials inside Jenkins
  • Configuring Webhooks on GitHub from Jenkins
  • Create a new repository on GitHub
  • Using a Jenkinsfile
  • Creating a Multibranch pipeline in Jenkins
  • Re-register the Webhooks
  • Jenkins Multibranch pipeline in action
  • Creating a new feature branch to test the multibranch pipeline
  • Jenkins Blue Ocean
  • Installing the Jenkins Blue Ocean plugin
  • View your regular Jenkins pipeline in Blue Ocean
  • Creating a pipeline in Blue Ocean
  • Summary
  • Chapter 4: Configuring Jenkins
  • The Jenkins Plugin Manager
  • Updating Jenkins plugins
  • Installing a new Jenkins plugin
  • Uninstalling or downgrading a Jenkins plugin
  • Configuring proxy settings in Jenkins
  • Manually installing a Jenkins plugin
  • Jenkins backup and restore
  • Installing the Periodic Backup plugin
  • Configuring the Periodic Backup plugin
  • Creating a Jenkins backup
  • Restoring a Jenkins backup
  • Viewing the backup and restore logs
  • Upgrading Jenkins
  • Upgrading Jenkins running on Tomcat Server
  • Upgrading standalone Jenkins running on Windows
  • Upgrading standalone Jenkins running on Ubuntu
  • Upgrading Jenkins running on a Docker container
  • User administration
  • Enabling/disabling global security on Jenkins
  • Enabling/disabling computers to remember user credentials
  • Authentication methods
  • Delegating to a servlet container
  • Jenkins' own user database
  • LDAP
  • Unix user/group database
  • Creating new users inside Jenkins
  • People page
  • User information and settings in Jenkins
  • Authorization methods.
  • Anyone can do anything
  • Legacy mode
  • Logged-in users can do anything
  • Matrix-based security
  • Project-based Matrix Authorization Strategy
  • Summary
  • Chapter 5: Distributed Builds
  • Distributed build and test
  • The Jenkins Manage Nodes page
  • Adding Jenkins slaves - standalone Linux machine/VMs
  • Passing environment variables to Jenkins slaves
  • Passing tools' locations to Jenkins slaves
  • Launching a Jenkins slave via SSH
  • More about the active Jenkins slave
  • Adding Jenkins slaves - standalone Windows machine/VMs
  • Launching a Jenkins slave via Java Web Start
  • Adding Jenkins slaves - Docker containers
  • Prerequisites
  • Setting up a Docker server
  • Setting up the repository
  • Installing Docker using apt-get
  • Installing Docker using a .deb package
  • Enabling Docker remote API
  • Modifying the docker.conf file
  • Modifying the docker.service file
  • Installing the Docker plugin
  • Configuring the Docker plugin
  • Creating a Docker image - Jenkins slave
  • Adding Docker container credentials in Jenkins
  • Updating the Docker settings inside Jenkins
  • Summary
  • Chapter 6: Installing SonarQube and Artifactory
  • Installing and configuring SonarQube
  • Installing Java
  • Downloading the SonarQube package
  • Running the SonarQube application
  • Resetting the default credentials and generating a token
  • Creating a project inside SonarQube
  • Installing the build breaker plugin for SonarQube
  • Creating quality gates
  • Updating the default quality profile
  • Installing the SonarQube plugin in Jenkins
  • Configuring the SonarQube plugin in Jenkins
  • Installing and configuring Artifactory
  • Installing Java
  • Downloading the Artifactory package
  • Running the Artifactory application
  • Resetting the default credentials and generating an API key
  • Creating a repository in Artifactory.
  • Adding Artifactory credentials inside Jenkins
  • Installing the Artifactory plugin in Jenkins
  • Configuring the Artifactory Plugin
  • Summary
  • Chapter 7: Continuous Integration Using Jenkins
  • Jenkins CI design
  • Branching strategy
  • The master branch
  • The integration branch
  • The feature branch
  • The CI pipeline
  • Toolset for CI
  • Creating the CI pipeline
  • Creating a new repository on GitHub
  • Using the SonarQube scanner for Maven
  • Writing the Jenkinsfile for CI
  • Spawning a Docker container - build agent
  • Downloading the latest source code from VCS
  • Pipeline code to perform the build and unit test
  • Pipeline code to perform static code analysis
  • Pipeline code to perform integration testing
  • Pipeline code to publish built artifacts to Artifactory
  • Combined CI pipeline code
  • Using a Jenkinsfile
  • Creating a Multibranch Pipeline in Jenkins
  • Re-registering the Webhooks
  • Continuous Integration in action
  • Viewing static code analysis in SonarQube
  • Accessing SonarQube analysis right from Jenkins
  • Viewing artifacts in Artifactory
  • Failing the build when quality gate criteria are not met
  • Summary
  • Chapter 8: Continuous Delivery Using Jenkins
  • Jenkins CD design
  • Branching strategy
  • The release branch
  • CD pipeline
  • Toolset for CD
  • Creating a Docker image - performance testing
  • Adding Docker container credentials in Jenkins
  • Updating the Docker settings inside Jenkins
  • Creating a performance test using JMeter
  • Installing Java
  • Installing Apache JMeter
  • Starting JMeter
  • Creating a performance test case
  • Creating a thread group
  • Creating a sampler
  • Adding a listener
  • The CD pipeline
  • Writing the Jenkinsfile for CD
  • Revisiting the pipeline code for CI
  • Pipeline code to stash the build artifacts
  • Spawning a Docker container - performance testing.
  • Pipeline code to start Apache Tomcat.