To create folders and subfolders in Jenkins using pipeline code, you can use Jenkins Job DSL or Groovy script. Hereโs how you can accomplish this in a Jenkins pipeline:
Using Jenkins Job DSL
The Jenkins Job DSL plugin allows you to define jobs and folders programmatically. Hereโs an example of how to create a folder and subfolder using Job DSL in a pipeline script:
pipeline {
agent any
stages {
stage('Create Folders') {
steps {
script {
// Using Job DSL to create folders
jobDsl scriptText: '''
folder('MainFolder') {
displayName('Main Folder')
description('This is the main folder')
}
folder('MainFolder/SubFolder') {
displayName('Sub Folder')
description('This is a subfolder inside Main Folder')
}
'''
}
}
}
}
}Code language: PHP (php)
Explanation
1. pipeline: This defines a Jenkins pipeline script.
2. agent any: This specifies that the pipeline can run on any available agent.
3. stages: The pipeline consists of stages, and each stage contains steps to execute.
4. script: The script block is used to execute Groovy code.
5. jobDsl: The jobDsl step is used to execute Job DSL scripts, which create and configure Jenkins jobs and folders.
6. folder(): The folder() method is used to define a folder. You specify the folder path, and optional display name and description.
Using Jenkins Groovy Script
import jenkins.model.*
import com.cloudbees.hudson.plugins.folder.*
// Function to create a folder
def createFolder(folderName, parentFolder = null) {
def jenkins = Jenkins.instance
def folder
if (parentFolder) {
folder = parentFolder.getItem(folderName)
} else {
folder = jenkins.getItem(folderName)
}
if (folder == null) {
def folderDescriptor = jenkins.getDescriptorByType(Folder.DescriptorImpl.class)
folder = folderDescriptor.newInstance(jenkins, folderName)
if (parentFolder) {
parentFolder.add(folder, folderName)
} else {
jenkins.add(folder, folderName)
}
println("Folder '${folderName}' created successfully.")
} else {
println("Folder '${folderName}' already exists.")
}
return folder
}
node {
stage('Create Folders') {
// Create a top-level folder
def mainFolder = createFolder('MainFolder')
// Create a subfolder inside the main folder
createFolder('SubFolder', mainFolder)
}
}Code language: JavaScript (javascript)
Explanation
โข Imports: Import Jenkins and Folder classes to interact with Jenkins and create folders.
โข createFolder Function: This function checks if a folder already exists and creates it if it doesnโt. It can create both top-level folders and subfolders.
โข Jenkins API: The script uses the Jenkins API to create folders programmatically.Code language: JavaScript (javascript)
Usage
โข Job DSL Plugin: If using the Job DSL method, ensure the Jenkins Job DSL plugin is installed and enabled.
โข Permissions: Ensure that the Jenkins user executing the script has the necessary permissions to create folders.
โข Execution: You can execute these scripts as part of a Jenkins pipeline job to automate folder management.Code language: JavaScript (javascript)
I’m Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms.
I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services โ all in one place.
Explore Hospitals