I have the problem, that in some Jenkins Pipeline projects the Stage View becomes invisible.
Usually, you can see the stage view between "Recent Changes" and "Permalinks". After some runs of a project, the Stage View disappears. If I clone the project, then the view is visible in the clone, but not in the original project.
It's a workaround to clone the project, but not a good one because I cannot replace the job every week.
Has someone seen that problem before and has an idea, how to fix that?
The stage view div, is on the job overview page, but it's not visible:
<div class="cbwf-stage-view">
<div class="cbwf-widget cbwf-controller-applied pipeline-staged" objecturl="/user/myname/my-views/view/MaintainedByMe/job/Category/job/ProjectName/" fragcaption="Stage View" cbwf-controller="pipeline-staged"></div>
<link rel="stylesheet" href="/adjuncts/ee6b655e/org/jenkinsci/pipeline/stageview_adjunct.css" type="text/css">
<script src="/adjuncts/ee6b655e/org/jenkinsci/pipeline/stageview_adjunct.js" type="text/javascript"></script>
</div>
My Jenkinsfile:
def sonarHostUrl = 'http://sonar.host.url:1234'
node('Build') {
echo "enforce a clear workspace:" // because there were some other problems
deleteDir()
stage('Checkout') {
checkoutFromSVN()
}
stage('Compile') {
mvn 'clean compile test-compile'
}
stage('Unit Tests') {
mvn '-B org.jacoco:jacoco-maven-plugin:prepare-agent test'
step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
}
stage('Deploy to Nexus') {
mvn 'install deploy -DskipTests'
archiveArtifacts artifacts: '**/project-name*.jar', onlyIfSuccessful: false
}
stage('Local Integration Tests') {
mvn '-B org.jacoco:jacoco-maven-plugin:prepare-agent-integration failsafe:integration-test failsafe:verify'
step([$class: 'JUnitResultArchiver', testResults: '**/target/failsafe-reports/TEST-*.xml'])
}
stage('Sonar'){
mvn "org.sonarsource.scanner.maven:sonar-maven-plugin:3.1.1:sonar -Dsonar.host.url=$sonarHostUrl"
}
}
stage('Deploy to DEV') {
build 'JobThatDeploysTheApplicationToDevEnv'
}
stage('Functional Tests') {
build job: 'JobWithSoapUITests', parameters: [string(name: 'TESTENVIRONMENT', value: 'DEV')]
}
def checkoutFromSVN(){
checkout([$class: 'SubversionSCM',
excludedCommitMessages: '.*\\[maven-release-plugin\\].*',
locations: [[credentialsId: 'a1a2b3c4-1234-ab1d-b56c-0ac4bff23a6c',
depthOption: 'infinity',
ignoreExternalsOption: true,
excludedRegions: 'Jenkinsfile',
local: 'project-dir',
remote: 'https://url.to/project-dir']],
workspaceUpdater: [$class: 'CheckoutUpdater']])
}
def mvn(String args) {
def mvnCmd = "${tool name: 'Maven 3.3.9', type: 'hudson.tasks.Maven$MavenInstallation'}/bin/mvn"
wrap([$class: 'ConfigFileBuildWrapper',
managedFiles: [[
fileId: 'org.jenkinsci.plugins.configfiles.maven.GlobalMavenSettingsConfig1234567',
targetLocation: '', // temporary file
variable: 'MAVEN_SETTINGS']]]) {
bat "${mvnCmd} -s ${env.MAVEN_SETTINGS} ${args} -f project-dir/pom.xml"
}
}
My Job configuration exported as XML:
<?xml version='1.0' encoding='UTF-8'?>
<flow-definition plugin="[email protected]">
<actions/>
<description></description>
<keepDependencies>false</keepDependencies>
<properties>
<jenkins.model.BuildDiscarderProperty>
<strategy class="hudson.tasks.LogRotator">
<daysToKeep>-1</daysToKeep>
<numToKeep>10</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</strategy>
</jenkins.model.BuildDiscarderProperty>
<org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty>
<triggers>
<hudson.triggers.TimerTrigger>
<spec>H H * * *</spec>
</hudson.triggers.TimerTrigger>
<hudson.triggers.SCMTrigger>
<spec>H/10 7-18 * * *</spec>
<ignorePostCommitHooks>false</ignorePostCommitHooks>
</hudson.triggers.SCMTrigger>
</triggers>
</org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty>
</properties>
<definition class="org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition" plugin="[email protected]">
<scm class="hudson.scm.SubversionSCM" plugin="[email protected]">
<locations>
<hudson.scm.SubversionSCM_-ModuleLocation>
<remote>https://url.to/project-dir</remote>
<credentialsId>a1a2b3c4-1234-ab1d-b56c-0ac4bff23a6c</credentialsId>
<local>.</local>
<depthOption>infinity</depthOption>
<ignoreExternalsOption>true</ignoreExternalsOption>
</hudson.scm.SubversionSCM_-ModuleLocation>
</locations>
<excludedRegions></excludedRegions>
<includedRegions>Jenkinsfile</includedRegions>
<excludedUsers></excludedUsers>
<excludedRevprop></excludedRevprop>
<excludedCommitMessages></excludedCommitMessages>
<workspaceUpdater class="hudson.scm.subversion.UpdateWithRevertUpdater"/>
<ignoreDirPropChanges>false</ignoreDirPropChanges>
<filterChangelog>false</filterChangelog>
</scm>
<scriptPath>Jenkinsfile</scriptPath>
</definition>
<triggers/>
</flow-definition>
I resolved the issue by manually copying the missing file to the Jenkins server job.
My detail steps:
my error was missing "\jobs\Dev-Linux-UI\builds\21\workflow\3.xml", I copied the file from builds\20\workflow\3.xml.
It seems that the file is missing during the copy as Jenkins pipeline is not stable enough.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With