We using open source Jenkins 2.107.2 on AWS.
We use Jenkins pipeline for all our apps.
We do not use multi-branch pipelines.
For one of the application, Jenkins job was failing due to the post-deploy test cases failures. Because of that the job is continuously executing the job until it succeeds.Can we configure Jenkins to retry failed builds only 1/2 times.
I saw https://wiki.jenkins.io/display/JENKINS/Naginator+Plugin
but this plugin is not supported for pipeline.
Is this what you need?
stage('build') {
if(!isBuildable){
//stop build and jump to next stage
return;
}
//do build tasks
}
isBuildable variable could be the result of other stages or any value that indicates that it should be built or not.
Related
I am converting a Jenkins Freestyle build to a pure pipeline based job.
Current configuration uses https://plugins.jenkins.io/build-blocker-plugin/ as shown in the image.
How can I use it in a Declarative pipeline?
pipeline {
agent { label 'docker-u20' }
//Don't run until the "test-job" running
blockon("test-job")
stage{}
}
I did try to look into various jenkins docs but haven't found yet.
I want to use the Jenkins "PRQA" plugin, which seems not to have the option to use it from a pipeline. The plugin would run static code analysis and publish the results.
In my case, it requires some preparations that are already done in a pipelinejob. Because of that, I want to include the job into that pipeline, but on the same executor with the data prepared by the pipeline as some kind of inlined job-step.
I have tried to create a job for the PRQA-Plugin-Step and execute this with the build step from the pipeline. But this tries to start the job on a new executor (and stalls because I have only one executor).
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Prepare'
}
}
stage('SCA') {
steps {
//Run this without using a new executor with the Environment that exists now
build 'PRQA_Job'
}
}
}
}
What is the correct way to run the job on the same executor with the current working directory.
With specified build 'PRQA_Job' it's not possible to run second job on the same executor (1 job = 1 executor), since main job just waiting for a triggered job to be finished. But you can run another job on the same agent with more than 1 executor to reach workspace from main job.
For a test porpose specify agent name in both jobs: agent 'agent_name_here'
If you want to use plugin functionality for a plugin, which has no native pipeline support, you could try using "step: General Build step" feature for Jenkins Pipelines. You can use the Pipeline Syntax wizzard linked in the Job configuration windows to generate the needed Pipeline description.
If the plugin does not show up in the "step: General Build step" part of Jenkins you can use a separate Job. To copy all the needed files/Data into this second Job you will require to use Archive Artifact/Copy Artifact functionality of Jenkins to save files from your Pipeline build.
For more information on how to sue Archive Artifact/Copy Artifact see https://plugins.jenkins.io/copyartifact/ and
https://www.jenkins.io/doc/pipeline/tour/tests-and-artifacts/
I have a multibranch pipeline.
I have configured Trigger in jenkinsFile properties:
pipelineTriggers([pollSCM('H/2 * * * *')])])
The multibranch pipeline is configured to "scan Multibranch Pipeline Triggers" periodically.
Expected behavior: Trigger builds only on build triggers configured through jenkinsFile
Actual: It triggers build on Poll SCM and also on "re-indexing" for the same commit.
We are using
Jenkins: 2.107.1
git plugin: 3.8.0
Pipeline multibranch: 2.17
I guess we can not stop the build trigger from scanning. But our build should be able to identify and stop the additional build.
// execute this before anything else, including requesting any time on an agent
if (currentBuild.getBuildCauses().toString().contains('BranchIndexingCause')) {
print "INFO: Build skipped due to trigger being Branch Indexing"
currentBuild.result = 'ABORTED' // optional, gives a better hint to the user that it's been skipped, rather than the default which shows it's successful
return
}
Source: https://www.jvt.me/posts/2020/02/23/jenkins-multibranch-skip-branch-index/
I am using Jenkins pipeline (Jenkins version - v2.73.2 ,Jenkins pipeline - 2.5) and wanted to force my job to use only two windows slave machines 'Jenkins-s1' or 'Jenkins-s2' which ever is available. To do this I know in legacy Jenkins we have option "Restrict where this project can be run" in the configure page.
Upon googling, with Jenkins pipeline 2, we can mention in the pipeline script as
node('Jenkins-s1||Jenkins-s2') {
stage ('Checkout') {
............ }
stage ('Build'){
............ }
stage ('Deploy') {
............ }
}
Which seems to be hard-code in the code and have to mention same in every child job. Therefore, i am looking for suggestions if there are any plugins available in Jenkins pipeline 2 which gives me option "Restrict where this project can be run" in the configure page or is there any other way i can handle this scenario.
Please share your inputs.
In my Jenkins pipeline, I trigger several other jobs using the build step and pass some parameters to it. I'm having issues visualizing the different jobs I've triggered in addition to my pipeline. I have set up the Jenkins Delivery Pipeline plugin but the documentation for it is extremely vague and I have only been able to visualize the steps within my pipeline, despite tagging the jobs with both a stage and task name.
Example:
I have two jobs in Jenkins as pipelines/workflow jobs with the following pipeline script:
Job Foo:
stage('Building') {
println 'Triggering job'
build 'Bar'
}
Job Bar:
node('master') {
stage('Child job stage') {
println 'Doing stuff in child job'
}
}
When visualizing this with the Jenkins Pipeline Delivery plugin, I only get this:
How do I make it also show the stage in job Bar in a separate box?
Unfortunately, this use case is currently not supported in the Delivery Pipeline plugin version 1.0.0. The delivery pipeline plugin views for Jenkins pipelines are only rendering what is contained within one pipeline definition at this point. This feature request is tracked in JENKINS-43679.