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...
Otros Autores: | |
---|---|
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.