Skip to content

Instantly share code, notes, and snippets.

@chinshr
Last active October 16, 2023 09:25
Show Gist options
  • Save chinshr/aa87da01ec28335e3ffd to your computer and use it in GitHub Desktop.
Save chinshr/aa87da01ec28335e3ffd to your computer and use it in GitHub Desktop.
Best of Jenkinsfile, a collection of useful workflow scripts ready to be copied into your Jenkinsfile on a per use basis.
#!groovy
# Best of Jenkinsfile
# `Jenkinsfile` is a groovy script DSL for defining CI/CD workflows for Jenkins
node {
}
# Jenkinsfile
# Build and test a Maven project
node {
git url: 'https://github.com/user/repo.git'
def mvnHome = tool 'M3'
sh "${mvnHome}/bin/mvn -B -Dmaven.test.failure.ignore verify"
step([$class: 'JUnitResultArchiver', testResults:
'**/target/foobar/TEST-*.xml'])
}
# Jenkinsfile
# Verify a Maven project
node {
git url: 'https://github.com/user/repo.git'
def mvnHome = tool 'M3'
sh "${mvnHome}/bin/mvn -B verify"
}
stage "unit test"
node {
git "git@github.com:michaelneale/oaks-trail-ride.git"
sh "echo unit test app"
}
stage "test on supported OSes"
parallel (
windows: { node {
sh "echo building on windows now"
}},
mac: { node {
sh "echo building on mac now"
}}
node {
for (int i=0; i< 2; ++i) {
stage "Stage #"+i
print 'Hello, world $i!'
}
stage "Stage Parallel"
def branches = [:]
for (int i = 0; i < numHelloMessages.toInteger(); i++) {
branches["split${i}"] = {
stage "Stage parallel- #"+i
node('remote') {
echo 'Starting sleep'
sleep 10
echo 'Finished sleep'
}
}
}
parallel branches
}
Copy link

ghost commented Dec 29, 2016

Can you someone please help , That how can i deploy my 8 build artifact into the env server simultaneously via jenkins jobs through Deployit tool

@mattvonrocketstein
Copy link

Can anyone answer whether the examples with iteration actually work? JENKINS-26481 and this stack overflow indicate that loops of all kinds are broken

@stevaaa
Copy link

stevaaa commented Jan 30, 2017

Hi guys, Can you give an example to pass parameters from one job to another job? (Pipeline project)
I have been stuck with this for a while now, kindly provide suggestions.

I'm trying the below, which did not work for me:(

Project Name: test2
node() {
stage 'pass params'
paramAValue = "paramAValue"
paramBValue = "paramBValue"
build job: 'test3', parameters: [[$class: 'StringParameterValue', name: 'ParamA', value: paramAValue], [$class: 'StringParameterValue', name: 'ParamB', value: paramBValue]]
}

Project Name: test3
node() {
stage 'retrieve params'
print "${env.paramA}"
}

@grahamatgithub
Copy link

grahamatgithub commented Mar 8, 2017

stage ('pass params') {
def paramAValue = "paramAValue"
...
}

etc.

Also try:
echo paramA not print "${env.paramA}"

@bparker98
Copy link

The preferred method of getting job parameters is to use the "params" map.

So use echo params.paramA

See https://jenkins.io/doc/book/pipeline/syntax/#parameters

@fredflintstone49
Copy link

Can someone please give an example of jenkins file which shows how to connect to jenkins slave and execute the shell scripts and python scripts residing in jenkins slave itself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment