snippetMajor
How to properly achieve dynamic parallel action with a declarative pipeline?
Viewed 0 times
declarativehowproperlywithachieveactionparalleldynamicpipeline
Problem
Currently, I'm going to need an implementation that must find all files within a directory and start a parallel task for every file found.
Is it possible to achieve this using declarative pipelines?
Is it possible to achieve this using declarative pipelines?
pipeline {
agent any
stages {
stage("test") {
steps {
dir ("file_path") {
// find all files with complete path
parallel (
// execute parallel tasks for each file found.
// this must be dynamic
}
}
}
}
}
}
}Solution
Managed to solve it with the following code:
pipeline {
agent { label "master"}
stages {
stage('1') {
steps {
script {
def tests = [:]
for (f in findFiles(glob: '**/html/*.html')) {
tests["${f}"] = {
node {
stage("${f}") {
echo '${f}'
}
}
}
}
parallel tests
}
}
}
}
}Code Snippets
pipeline {
agent { label "master"}
stages {
stage('1') {
steps {
script {
def tests = [:]
for (f in findFiles(glob: '**/html/*.html')) {
tests["${f}"] = {
node {
stage("${f}") {
echo '${f}'
}
}
}
}
parallel tests
}
}
}
}
}Context
StackExchange DevOps Q#3073, answer score: 40
Revisions (0)
No revisions yet.