Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jenkins Pipeline (Workflow) Stage View disappears

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>
like image 508
Sergej Werfel Avatar asked Nov 30 '16 09:11

Sergej Werfel


1 Answers

I resolved the issue by manually copying the missing file to the Jenkins server job.

My detail steps:

  1. Open pipeline page.
  2. Press F12 in Chrome.
  3. Check Console for errors.

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.

like image 60
Xuezhong Avatar answered Sep 22 '22 21:09

Xuezhong