← Back to list

Automated Testing with CI/CD Pipelines Using Jenkins in the JYSK Stores Infrastructure Environment

Introduction to Automated Testing with CI/CD Pipelines Using Jenkins in the JYSK Stores Infrastructure Environment - Part 1

Mateusz Chrzan in JYSK Tech · 2026-03-30 09:14 · 2 claps · 5.0 min read
#cicd #jenkins #test-automation #groovy
Open on Medium ↗
Wiki topics: ☁️ · DevOps & Cloud

Introduction to Automated Testing with CI/CD Pipelines Using Jenkins in the JYSK Stores Infrastructure Environment — Part 1

Foundations of Jenkins and Its Role in JYSK Test Processes

Managing ~3,400 servers and ~18,000 endpoints through Microsoft Configuration Manager revealed that traditional testing methods couldn’t scale and we needed a solution capable of validating imaging systems directly in stores — reliably and at scale. After brainstorming, Jenkins became that solution.

This series explores why Jenkins was chosen to automate Operating System Deployment (OSD) testing using MCM, and how it will expand to cover bare-metal Proxmox image validation and Windows POS backup verification. Jenkins connects seamlessly with our source control, hypervisors, and test environments, forming the backbone of our automation strategy.

What is Jenkins, and why did we choose it for our testing automation needs?

Jenkins is an open-source, Java-based automation server built to implement CI/CD pipelines. It automates repetitive lifecycle tasks — building, testing, deploying, security checks, and more — through a vast plugin ecosystem. By focusing Jenkins exclusively on testing, we can tailor its pipelines to our specific needs: validating Proxmox installation images, verifying Windows POS backups, and automating OSD task sequence testing.

Key benefits of using Jenkins in JYSK ecosystem

Key benefits of using Jenkins in JYSK ecosystem

Below are the key reasons why Jenkins is now the backbone of our CI/CD pipelines:

  • Extensive Plugin Ecosystem & Customization: Jenkins vast plugin library enables seamless integration with tools across our workflows — from SSH connections and Docker orchestration to automating MCM task sequence testing, Proxmox image validation, and Windows POS backup verification — adapting to projects of any scale.
  • Cross-Platform Compatibility: Runs effortlessly across different operating systems.
  • Pipeline as Code: Jenkinsfiles define pipelines as modular, maintainable, version-controlled workflows.
  • Scalability: Distributed build support allows nodes to be added on demand, enabling parallel test execution that reduces build times and optimizes resource utilization.
  • Detailed Reporting & Logging: Comprehensive build status, test outcome, and deployment log monitoring out of the box.
  • Community Support: As one of the most widely adopted CI/CD tools, Jenkins benefits from frequent updates, security patches, and extensive documentation driven by a large, active community.
  • Open Source: Free to use, modify, and distribute. Its transparent codebase builds trust in security, while the thriving community provides a wealth of plugins, integrations, and support.

Why and how we Automate OSD Using Jenkins Pipelines

Operating System Deployment (OSD) is one of the most business-critical processes in the JYSK IT store environment. With ~3,400 servers and ~18,000 endpoints, manual OSD verification is impossible at scale — even minor inconsistencies can cause outages or degraded store performance, making full lifecycle automation essential.

Why Microsoft Configuration Manager automation?

Because the MCM Task Sequence is not just installing Windows. It also:

  • Loads drivers, updates firmware
  • Installs security agents
  • Configures domain membership and OU placement
  • Installs country‑specific applications
  • Applies hundreds of registry and policy customizations
  • Validates provisioning steps.
  • and many more…

Any misconfiguration — a missing driver, a broken GPO, an outdated software version — will cause operational issues in stores.

Why Jenkins pipelines to automate tests?

Because Jenkins:

  • Provides stable orchestration for long‑running tasks
  • Integrates with Docker to control environments
  • Allows parallel execution across stores
  • Integrates with GitHub for version control
  • Works well with remote hypervisors such as Proxmox
  • Fits naturally with SSH‑based infrastructure automation
  • Is a cost-effective solution

Overview of Our Jenkins Architecture Setup

Our Jenkins automation platform is built on a layered architecture leveraging virtualization, containerization, and distributed store-level compute nodes. The design ensures high flexibility, scalable execution capacity, and clear separation of responsibilities across infrastructure components.

Jenkins CI/CD architecture overview

Jenkins CI/CD architecture overview

1. Bare-Metal Layer (Jenkins VM)

The core of the system is a physical server currently running on VMware ESXi, with an ongoing migration to Proxmox virtualization. This bare-metal host provides the virtualization environment for the Jenkins management virtual machine. A dedicated Jenkins VM runs on the hypervisor. This VM hosts two critical components:

  • Jenkins Controller (Master) — Responsible for pipeline orchestration, scheduling, credential management, and interactions with external systems. It also runs the web/API interface, integrated with the Active Directory (AD) domain controller.
  • Docker Engine — used to dynamically provision isolated execution environments (Docker agents) for Jenkins jobs.

2. Git and GitHub Integration

The Jenkins VM is directly integrated with GitHub repositories as the primary source-code management (SCM) system. Jenkins monitors repositories, fetches source code, triggers pipeline executions, and processes pull-request-based workflows.

3. Docker Hub Integration

The Jenkins VM also connects to Docker Hub, which serves as the central registry for container images used by Jenkins pipeline agents. Updated images can be pulled automatically during pipeline execution, ensuring that all Docker-based agents run a controlled, consistent environment.

4. Docker-Based Jenkins Agents

Within the Jenkins VM, Docker Engine spawns multiple Docker containers, each functioning as a Jenkins agent. These agents execute all build, test, and automation tasks in isolated, reproducible environments.

5. Store HPE Servers (Distributed Execution Layer)

Each physical HPE store server operates on Proxmox, a Debian-based hypervisor. These servers host a variety of virtual machines tailored to the specific needs of the store, including Windows and Linux-based systems. These virtual machines support critical production systems, testing environments, deployment validation, and operational tasks. The Docker-based Jenkins agents connect to these store servers over SSH, enabling:

  • Automated scripted testing
  • Remote orchestration of VMs

6. End-to-End Workflow Summary

  • Operations specialist commits code to branch in GitHub, then creates the Pull Request, which is merged into the main branch in repository.
  • Jenkins detects the change and pulls the repository, when the build is executed.
  • Jenkins during manual execution of build with specific parameters (in this case names of store server) pulls required images from Docker Hub and spawns Docker agents.
  • Docker agents execute CI/CD tasks inside isolated containers.
  • Containers connect via SSH to store-level Proxmox servers to manage test VMs.
  • Results are reported back to Jenkins, which updates pipeline dashboards.

7. Security Architecture

  • RBAC inside Jenkins
  • Credentials stored are encrypted
  • Webhook IP restriction for GitHub
  • SSH keys for Proxmox host access
  • Least-privilege access on all pipelines

What’s Next

In the next part of this series, we will dive deeper into the implementation details of our Jenkins pipelines. We will explore:

· Docker Engine API integration with Jenkins and repository image management: The process of building Docker images and pulling pre-configured images from Docker Hub repositories to ensure consistent and reproducible environments.

· Git, GitHub & Jenkins: A Clean, Practical Integration Guide for Modern CI/CD Workflows: How Jenkins interacts with Git repositories to monitor changes, trigger builds, and manage pull-request workflows.

· Advanced Pipeline Configurations: Techniques for enabling parallel testing across multiple Proxmox nodes using containerized environments, detailed examples of how Jenkins pipelines are used to validate Proxmox images and automate OSD task sequence testing.

Stay tuned as we uncover the technical intricacies of our Jenkins setup and demonstrate how it powers our CI/CD workflows with efficiency and reliability.


메타데이터
post_id
dbd70df13c1f
slug
automated-testing-with-ci-cd-pipelines-using-jenkins-in-the-jysk-stores-infrastructure-environment-dbd70df13c1f
url
https://jysk.tech/automated-testing-with-ci-cd-pipelines-using-jenkins-in-the-jysk-stores-infrastructure-environment-dbd70df13c1f
canonical_url
https://jysk.tech/automated-testing-with-ci-cd-pipelines-using-jenkins-in-the-jysk-stores-infrastructure-environment-dbd70df13c1f
author_url
https://medium.com/@matc_jysk
status
ok
fetched_at
2026-06-10 09:45:17