Curso Jenkins Integration with Jenkins for Developers and DevOps Initiatives
16 horasVisão Geral
Este Curso Jenkins Integration with Jenkins for Developers and DevOps Initiatives, ensina os participantes como usar o sistema Jenkins Continuous Integration de forma eficiente e eficaz. Os alunos aprendem como instalar o Jenkins em uma máquina Windows, criar trabalhos do Jenkins, configurar a autenticação de usuário do Jenkins e explorar os plug-ins do Jenkins comumente usados.
Jenkins é um aplicativo premiado que monitora execuções de trabalhos repetidos, como a construção de um projeto de software ou trabalhos executados pelo cron. Entre essas coisas, o Jenkins atual se concentra nos dois trabalhos a seguir:
- Construir/testar projetos de software continuamente. Jenkins fornece um sistema de integração contínua fácil de usar, tornando mais fácil para os desenvolvedores integrarem as alterações do projeto e facilitando aos usuários a obtenção de uma nova construção. A construção automatizada e contínua aumenta a produtividade do desenvolvimento.
- Monitoramento de execuções de trabalhos executados externamente, como trabalhos cron e trabalhos procmail, mesmo aqueles executados em uma máquina remota. Por exemplo, com o Cron, tudo o que você recebe são e-mails regulares que capturam o resultado, e cabe a você observá-los com atenção e perceber quando eles quebram. Jenkins mantém essas saídas e facilita perceber quando algo está errado.
Este Curso Jenkins Integration with Jenkins for Developers and DevOps Initiatives, proporcionará aos alunos uma compreensão dos princípios da integração contínua e o conhecimento de como implementar a integração contínua com execução automatizada de testes usando Jenkins. Os alunos usarão uma cópia local do Jenkins para criar e executar trabalhos, vincular-se a um sistema de controle de versão, executar testes automatizados e gerar relatórios de desenvolvimento.
Objetivo
Após reailizar este Curso Jenkins Integration with Jenkins for Developers and DevOps Initiatives, você será capaz de:
- Instalar e configurar o Jenkins em um contêiner de servlet
- Criar compilações Jenkins
- Configure e use Apache Ant e Apache Maven com Jenkins
- Use Jenkins para gerar relatórios de padrões de codificação Java, relatórios de cobertura de código e avisos de mudança
- Use Jenkins para implantar software automaticamente em um ambiente de teste.
Pre-Requisitos
- Os participantes devem ter familiaridade com as práticas de desenvolvimento Java.
Materiais
Português + Exercícios + Lab PraticoConteúdo Programatico
Introduction to Continuous Integration, Continuous Delivery, and Jenkins-CI
- Foundation of Agile AppDev
- XP Flow
- Extreme Programming
- Agile Development
- What is Continuous Integration
- Typical Setup for Continuous Integration
- Setup Notes for Continuous Integration
- CI with Artifact Management
- What is Continuous Delivery?
- Why Continuous Delivery?
- DevOps and Continuous Delivery
- Continuous Delivery Challenges
- Continuous Delivery vs Continuous Deployment
- Jenkins Continuous Integration
- Jenkins Features
- Running Jenkins
Installing and Running Jenkins
- Downloading and Installing Jenkins
- Running Jenkins as a Stand-Alone Application
- Running Jenkins as a Stand-Alone Application (cont'd)
- Running Jenkins on an Application Server
- The Jenkins Home Folder
- Installing Jenkins as a Windows Service
- Initial Configuration
- Configuration Wizard
- Configuring Tools
- Configuring Tools - Best Practices
- Logging in Jenkins
- Custom Log Recorders
Job Types in Jenkins
- Introduction
- Different types of Jenkins Items
- Configuring Source Code Management (SCM)
- Working with Subversion
- Working with Git
- Storing Credentials
- Service Accounts
- Storing Credentials
- Build Triggers
- Schedule Build Jobs
- Polling the SCM
- Polling vs Triggers
- Maven Build Steps
Advanced Jobs
- Parameterized Jobs
- Built-in Environment Variables
- Parameter Types
- Defining Parameters
- Using Parameters / Environment Variables
- Parameters in the config.xml File
- Launching a Build with Parameters
- Configuration Matrix
- Configuration Matrix – Example
- Defining Configuration Matrix
- Monitoring External Jobs
Non-Java Jenkins Jobs
- Jenkins Jobs
- Non-Java Jobs
- Building .NET Projects with Jenkins
- Installing MSTest Plugin in Jenkins
- Configuring the MSBuild Plugin
- Creating a Jenkins Job and Specify a Build Step
- Specifying a Step for Running Unit Tests
- Adding a Step for Deploying the .NET Project
- Building a Node.js Application with Jenkins
- Node.js Plugin
- Provides direct Pipeline support
- Building a C++ Project with Jenkins
- Executing PowerShell Scripts with Jenkins
Continuous Delivery and the Jenkins Pipeline
- Continuous Delivery
- DevOps and Continuous Delivery
- Continuous Delivery Challenges
- Continuous Delivery with Jenkins
- The Pipeline Plugin
- Defining a Pipeline
- A Pipeline Example
- Parallel Execution
- Creating a Pipeline
- Invoking the Pipeline
- Interacting with the Pipeline
- Pipeline vs. Traditional Jobs
Groovy DSL
- What is Groovy
- Groovy in Jenkins
- Comments in Groovy
- Data Types
- Identifiers
- Variables
- def
- String Interpolation
- Operators
- Ranges
- Conditional Statements
- Loops
- Lists
- Maps
- Exception Handling
- Methods
- Closures
- this Keyword
- Classes
- Static Methods
- Inheritance
- Abstract Classes
- Interfaces
- Generics
- Jenkins Script Console
- Extending with Shared Libraries
- Directory Structure
- Sample Groovy Code
- Defining Shared Libraries
- Using Shared Libraries
- Same Shared Library Usage Code
- Defining Global Variables
Securing Jenkins
- Jenkins Security - Overview
- Jenkins Security
- Authentication
- Authorization
- Confidentiality
- Activating Security
- Configure Authentication
- Using Jenkins's Internal User Database
- Creating Users
- Authorization
- Authorization
- Matrix-Based Security
- Note – Create the Administrative User
- Project-based Matrix Authorization
- Project-Based Authentication
- Role Based Access Control
- Conclusion
Jenkins Plugins
- Introduction
- Jenkins Plugins - SCM
- Jenkins Plugins – Build and Test
- Jenkins Plugins – Analyzers
- Jenkins for Teams
- Installing Jenkins Plugins
Distributed Builds with Jenkins
- Distributed Builds - Overview
- Distributed Builds – How?
- Agent Machines
- Configure Jenkins Master
- Configure Projects
- Conclusion
Containerized Builds
- Introduction to Docker
- Docker – Benefits
- Containers vs. Virtual Machines
- Running Jenkins in a Docker Container
- Delete Jenkins Container and Image
- Configuring Command Prompt to Connect to Docker
- Creating Docker Container from Jenkins Job
- Test Custom Image Created by a Jenkins Job
- The Jenkins Docker Build Step Plugin
- Ephemeral Build Agents
The Jenkins API
- Remote Access API
- What you can do with the Jenkins Remote API
- Remote API and CSRF Protection – API Token
- Remote API and CSRF Protection – Crumb
- Configure Jobs to Support the Jenkins Remote API
- Making Remote API Calls
- Example - Advanced REST Client
- Example – cURL
- Jenkins CLI
- Configure Jenkins to use CLI
- Download and Use Jenkins CLI
Scripting
- Introduction to Scripting
- Benefits of Scripting
- The Jenkins Script Console
- Calling Scripts using cURL
- Sample Scripts
- Calling Groovy Scripts from a Jenkins Job
- Jenkins API
User Interface Options
- User Interface Options
- Customizing the UI with CSS
- The User Content Folder
- Using the User Content Folder and Simple Theme Plugin
- Writing a Jenkins Plugin
- Modify settings.xml
- Generate Boilerplate Code for Custom Jenkins Plugin
- Modify pom.xml
- Package and Deploy the Plugin
- The Blue Ocean Plugin
- Blue Ocean Plugin Features
- New modern user experience
- Advanced Pipeline visualizations with built-in failure diagnosis
- Branch and Pull Request awareness
- Personalized View
Best Practices for Jenkins
- Best Practices - Secure Jenkins
- Best Practices - Users
- Best Practices - Backups
- Best Practices - Reproducible Builds
- Best Practices - Testing and Reports
- Best Practices - Large Systems
- Best Practices - Distributed Jenkins
- Best Practices - Summary
Lab Exercises
- Lab 1. Configure Tools in Jenkins
- Lab 2. Create a Jenkins Job
- Lab 3. Advanced Jobs
- Lab 4. Node.js based Jenkins Job
- Lab 5. Create a Pipeline
- Lab 6. Advanced Pipeline with Groovy DSL
- Lab 7. Configure Jenkins Security
- Lab 8. Optional: Ephemeral Build Agents with Docker