Continuous Integration and Deployment & Unit Testing with Git & Jenkins

Explore CI/CD, Git, Git Tools, Jenkins Integration, Functional Testing, Jenkins & More

TTDV7560

Intermediate

5 Days

Course Overview

Continuous Integration and Deployment is a paradigm-shifting technique that brings together the best practices of source code management, test-driven development, and automated build systems to significantly lower both time and cost of development while reducing bugs and improving software quality. This course provides developers and systems administrators who support them the key knowledge and skills in creating a Git and Jenkins-based CICD platform.

Working in a hands-on learning environment led by our expert team, students will explore

  • How to fully and best use Git, including branching, diffs, and tagging
  • How to integrate Unit Testing as part of a cohesive TDD strategy
  • How to integrate with Jenkins to continuously build on checkin
  • How to create build-test-deploy pipelines in Jenkins
  • How to use and configure key Jenkins Plugins to create a CICD platform
  • How to integrate security into Jenkins
  • How to create build reports in Jenkins
  • How to create distributed build and test clusters
  • How to setup and exploit Selenium RC (Optional)
  • The basics of testing for mobile platforms

Course Objectives

This course is approximately 50% hands-on, combining expert lecture, real-world demonstrations and group discussions with machine-based practical labs and exercises.  Working in a hands-on learning environment led by our expert team, students will explore

  • How to fully and best use Git, including branching, diffs, and tagging
  • How to integrate Unit Testing as part of a cohesive TDD strategy
  • How to integrate with Jenkins to continuously build on checkin
  • How to create build-test-deploy pipelines in Jenkins
  • How to use and configure key Jenkins Plugins to create a CICD platform
  • How to integrate security into Jenkins
  • How to create build reports in Jenkins
  • How to create distributed build and test clusters
  • How to setup and exploit Selenium RC
  • The basics of testing for mobile platforms

Need different skills or topics?  If your team requires different topics or tools, additional skills or custom approach, this course may be further adjusted to accommodate.  We offer additional GIT, DevOps, Docker, container, testing, security, programming, and other related topics that may be blended with this course for a track that best suits your needs.

Course Prerequisites

This class assumes some prior experience with Git, Jenkins basics, plus basic coding or programming knowledge.

Take Before:

  • TTDV7550     Introduction to Git
  • TTDV7520     Introduction to Jenkins

Please see the Related Courses tab for specific Pre-Requisite courses, Related Courses that offer similar skills or topics, and next-step Learning Path recommendations.

Course Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We will work with you to tune this course and level of coverage to target the skills you need most.

Continuous Integration, Testing, and Deployment Overview (CI/CD)

  • Shifting Paradigms
  • Source Code Repos (GitHub Enterprise)
  • Binary Repos
  • Test-Driven Development (TDD)
  • Build Servers
  • Automated Testing
  • Automated Deployment

Git Essentials Review

  • Creating Repositories
  • Local and Remote Repos
  • Managing SSH Keys
  • Committing Code
  • Pushing Code
  • Best Practices
  • Exercise: Git Essentials

Git Branching

  • Branching and Merging
  • Branch Management
  • Branching Workflows
  • Remote Branches
  • Rebasing
  • Branching Best Practices
  • Lab: Branching with Git
  • Lab: Merging with Git

Git Tools

  • Diffs and Patches
  • Reverting
  • Tagging
  • Submodules
  • Subtree Merging
  • Lab: Diffs and Patches with Git
  • Lab: Creating Submodules
  • Lab: Git Subtree Merging

Functional Testing Overview

  • Unit Testing
  • Mocks
  • Integration Testing
  • Progressive Integration Testing
  • End-to-End Testing

PHPUnit

  • xUnit
  • PHPUnit Test
  • Mocks for PHPUnit
  • Running Tests
  • Test-on-build
  • PHPUnit in Integration Testing
  • Lab: Unit Tests with PHPUnit

Related Testing Tools

  • Selenium, Selenium, and Selenium Grid
  • Services testing with PostMan, SoapUI, Boomerang
  • DBUnit
  • Lab: Working with Selenium
  • Lab: Testing with Postman [Optional]

Non-Functional Testing

  • Strategies and Best Practices
  • Performance Testing
  • Scalability Testing
  • Availability Testing
  • Security Testing
  • Lab: Unit Tests in Performance Testing

Jenkins Overview

  • Administration Overview
  • Creating Jobs
  • Reporting Overview
  • Notification Overview
  • Plugins Overview

Jenkins Core Builds

  • Jenkins and SCM (GitHub)
  • Building PipeLines
  • IM integration and Build Notifications
  • Deploying Builds
  • Blue Ocean
  • Lab: Creating Jobs in Jenkins
  • Lab: Linking GitHub and Jenkins
  • Lab: Creating a Jenkins Pipeline
  • Lab: Integrating IM in Jenkins
  • Lab: Working with Blue Ocean [Optional]

Jenkins Authentication/Authorization

  • Authentication and Authorization choices
  • Integrating A&A
  • Matrix-based security
  • Lab: Configuring Security in Jenkins

Jenkins Reporting

  • Creating Reports
  • Report Deployments
  • Lab: Creating Build Reports in Jenkins

Jenkins and Virtual Machines

  • VM Provider comparison
  • Cluster Management
  • DevOps & OpenShift
  • Distributed Builds with VMs
  • Distributed Testing with VMs
  • Lab: Slave builds in Jenkins
  • Lab: Distributed Testing in Jenkins

OPTIONAL: Jenkins - Testing with Selenium

  • Selenium Server setup
  • VM instance Setup
  • Jenkins-Selenium Plugin Setup
  • Lab: Setting up a Selenium Grid in Jenkins

Looking Forward

  • State of the Art in Software Engineering
  • Build and Test Automation with VMs
  • Automated Deployment to Production

Course Materials

Student Materials: Each participant will receive a Student Guide with course notes, code samples, software tutorials, step-by-step written lab instructions, diagrams and related reference materials and resource links. Students will also receive the project files (or code, if applicable) and solutions required for the hands-on work.

Hands-On Setup Made Simple! Our dedicated tech team will work with you to ensure our ‘easy-access’ cloud-based course environment is accessible, fully-tested and verified as ready to go well in advance of the course start date, ensuring a smooth start to class and effective learning experience for all participants. Please inquire for details and options.

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Mix, Match & Master!
2FOR1: Two Courses, One Price!

Enroll in *any* two public courses (for 2023 *OR* 2024 dates!) by December 31, for one price!  Learn something new, or share the promo!

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More