0

I have looked trough some posts, but couldnt find a solution to my problem. In Jenkins I have a pipeline configured with an maven project. I can run the tests locally without a problem and the test result are generated in the target folder. The problem is that the tests do not pass the Jenkins Build Process as the folder structure is different in jenkins. In the error message I see that it does not use the correct path:

[ERROR] Command was /bin/sh -c cd /var/lib/jenkins/jobs/test/workspace

The path should be something like

/var/lib/docker/volumes/jenkins-data_var_lib_jenkins`/_data/jobs/test/workspace#

On the server where Jenkins is running there is no jenkins folder under the lib folder. I made a search and found out that the jenkins folder is below lib/docker/volumes. But somehow while the build process the console says

Running on master in /var/lib/jenkins/jobs/test/workspace

Where can I make this changes? Any help is much appreciated. My Jenkinsfile was generated from the Framework I am using and looks like this:

#!/usr/bin/env groovy

node {

    stage('checkout') {
        checkout scm
    }

    stage('check java') {
        sh "java -version"
    }

    stage('clean') {
        sh "chmod +x mvnw"
        sh "./mvnw clean"
    }

    stage('install tools') {
        sh "./mvnw com.github.eirslett:frontend-maven-plugin:install-node-and-yarn -DnodeVersion=v6.11.3 -DyarnVersion=v1.1.0"
    }

    stage('yarn install') {
        sh "./mvnw com.github.eirslett:frontend-maven-plugin:yarn"
    }


    stage('backend tests') {
        try {
            sh "./mvnw test"
        } catch(err) {
            throw err
        } finally {
            junit '**/target/surefire-reports/TEST-*.xml'
        }
    }

    stage('frontend tests') {
        try {
            sh "./mvnw com.github.eirslett:frontend-maven-plugin:yarn -Dfrontend.yarn.arguments=test"
        } catch(err) {
            throw err
        } finally {
            junit '** /target/test-results/karma/TESTS-*.xml'
        }
    } 

    stage('packaging') {
        sh "./mvnw package -Pprod -DskipTests"
        archiveArtifacts artifacts: '**/target/*.war', fingerprint: true
    }

}

The Error Report in the build process is the following (like I said above, there is no jenkins folder under var/lib/. I think there is a problem with two different workspaces, but how could I adapt this?

     Started by an SCM change
        Obtained Jenkinsfile from git https://github.com/....git
        [Pipeline] node
        Running on master in /var/lib/jenkins/jobs/test/workspace
        [Pipeline] {
        [Pipeline] stage
        [Pipeline] { (checkout)
        [Pipeline] checkout
         > git rev-parse --is-inside-work-tree # timeout=10
        Fetching changes from the remote Git repository
         > git config remote.origin.url https://github.com/.....git # timeout=10
        Fetching upstream changes from https://github.com/.......git
         > git --version # timeout=10
        using GIT_ASKPASS to set credentials 
         > git fetch --tags --progress https://github.com/........git +refs/heads/*:refs/remotes/origin/*
         > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
         > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
        Checking out Revision .....
    (refs/remotes/origin/master)
         > git config core.sparsecheckout # timeout=10
         > git checkout -f ........
        Commit message: "Merge branch 'master' of https://github.com/......"
         > git rev-list ....... # timeout=10
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] stage
        [Pipeline] { (check java)
        [Pipeline] sh
        [workspace] Running shell script
        + java -version
        openjdk version "1.8.0_112"
        OpenJDK Runtime Environment (build 1.8.0_112-b15)
        OpenJDK 64-Bit Server VM (build 25.112-b15, mixed mode)
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] stage
        [Pipeline] { (clean)
        [Pipeline] sh
        [workspace] Running shell script
        + chmod +x mvnw
        [Pipeline] sh
        [workspace] Running shell script
        + ./mvnw clean
        [INFO] Scanning for projects...
       [INFO] ------------------------------------------------------------------------
        [INFO] Building Test 0.0.1-SNAPSHOT
        [INFO] ------------------------------------------------------------------------
        [INFO] 
        [INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ test---
        [INFO] Deleting /var/lib/jenkins/jobs/test/workspace/target
        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD SUCCESS
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time: 1.181 s
        [INFO] Finished at: 2017-10-18T11:32:15Z
        [INFO] Final Memory: 12M/106M
        [INFO] ------------------------------------------------------------------------
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] stage
        [Pipeline] { (install tools)
        [Pipeline] sh
        [workspace] Running shell script
        + ./mvnw com.github.eirslett:frontend-maven-plugin:install-node-and-yarn -DnodeVersion=v6.11.3 -DyarnVersion=v1.1.0
        [INFO] Scanning for projects...
        [INFO] 
        [INFO] ------------------------------------------------------------------------
        [INFO] Building Test 0.0.1-SNAPSHOT
        [INFO] ------------------------------------------------------------------------
        [INFO] 
        [INFO] --- frontend-maven-plugin:1.6:install-node-and-yarn (default-cli) @ test---
        [INFO] Node v6.11.3 is already installed.
        [INFO] Yarn 1.1.0 is already installed.
        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD SUCCESS
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time: 3.126 s
        [INFO] Finished at: 2017-10-18T11:32:20Z
        [INFO] Final Memory: 14M/106M
        [INFO] ------------------------------------------------------------------------
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] stage
        [Pipeline] { (yarn install)
        [Pipeline] sh
        [workspace] Running shell script
        + ./mvnw com.github.eirslett:frontend-maven-plugin:yarn
        [INFO] Scanning for projects...
------------------------------------------------------------------------
        [INFO] Building Test 0.0.1-SNAPSHOT
        [INFO] ------------------------------------------------------------------------
        [INFO] 
        [INFO] --- frontend-maven-plugin:1.6:yarn (default-cli) @ test---
        [INFO] Running 'yarn ' in /var/lib/jenkins/jobs/test/workspace
        [INFO] yarn install v1.1.0
        [INFO] [1/5] Validating package.json...
        [INFO] [2/5] Resolving packages...
        [INFO] success Already up-to-date.
        [INFO] Done in 2.39s.
        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD SUCCESS
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time: 4.316 s
        [INFO] Finished at: 2017-10-18T11:32:27Z
        [INFO] Final Memory: 12M/106M
        [INFO] ------------------------------------------------------------------------
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] stage
        [Pipeline] { (backend tests)
        [Pipeline] sh
        [workspace] Running shell script
        + ./mvnw test
        [INFO] Scanning for projects...
      ------------------------------------------------------------------------
        [INFO] Building Test 0.0.1-SNAPSHOT
        [INFO] ------------------------------------------------------------------------
        [INFO] 
        [INFO] --- maven-resources-plugin:3.0.1:copy-resources (default-resources) @ test---
        [INFO] Using 'UTF-8' encoding to copy filtered resources.
        [INFO] Copying 19 resources
        [INFO] Copying 11 resources
        [INFO] 
        [INFO] --- maven-resources-plugin:3.0.1:resources (default-resources) @ test---
        [INFO] Using 'UTF-8' encoding to copy filtered resources.
        [INFO] Copying 19 resources
        [INFO] Copying 11 resources
        [INFO] 
        [INFO] --- maven-enforcer-plugin:1.4.1:enforce (enforce-versions) @ test---
        [INFO] 
        [INFO] --- maven-resources-plugin:3.0.1:copy-resources (docker-resources) @ test---
        [INFO] Using 'UTF-8' encoding to copy filtered resources.
        [INFO] Copying 2 resources
        [INFO] 
        [INFO] --- jacoco-maven-plugin:0.7.9:prepare-agent (pre-unit-tests) @ test---
        [INFO] argLine set to -javaagent:/var/lib/jenkins/.m2/repository/org/jacoco/org.jacoco.agent/0.7.9/org.jacoco.agent-0.7.9-runtime.jar=destfile=/var/lib/jenkins/jobs/test/workspace/target/test-results/coverage/jacoco/jacoco.exec -Djava.security.egd=file:/dev/./urandom -Xmx256m
        [INFO] 
        [INFO] --- maven-compiler-plugin:3.6.0:compile (default-compile) @ test---
        [INFO] Changes detected - recompiling the module!
        [INFO] Compiling 94 source files to /var/lib/jenkins/jobs/test/workspace/target/classes
        [INFO] 
        [INFO] --- maven-resources-plugin:3.0.1:testResources (default-testResources) @ test---
        [INFO] Using 'UTF-8' encoding to copy filtered resources.
        [INFO] Copying 4 resources
        [INFO] 
        [INFO] --- maven-compiler-plugin:3.6.0:testCompile (default-testCompile) @ test---
        [INFO] Changes detected - recompiling the module!
        [INFO] Compiling 22 source files to /var/lib/jenkins/jobs/test/workspace/target/test-classes
        [INFO] 
        [INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ test---
        [INFO] Surefire report directory: /var/lib/jenkins/jobs/test/workspace/target/surefire-reports

        -------------------------------------------------------
         T E S T S
        -------------------------------------------------------
        Error: Invalid or corrupt jarfile /var/lib/jenkins/jobs/test/workspace/target/surefire/surefirebooter78063794178.....jar

        Results :

        Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

        [INFO] ------------------------------------------------------------------------
        [INFO] BUILD FAILURE
        [INFO] ------------------------------------------------------------------------
        [INFO] Total time: 13.856 s
        [INFO] Finished at: 2017-10-18T11:32:43Z
        [INFO] Final Memory: 49M/334M
        [INFO] ------------------------------------------------------------------------
        [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project test: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test failed: The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
        [ERROR] Command was /bin/sh -c cd /var/lib/jenkins/jobs/test/workspace && /usr/lib/jvm/java-8-openjdk/jre/bin/java -javaagent:/var/lib/jenkins/.m2/repository/org/jacoco/org.jacoco.agent/0.7.9/org.jacoco.agent-0.7.9-runtime.jar=destfile=/var/lib/jenkins/jobs/test/workspace/target/test-results/coverage/jacoco/jacoco.exec -Djava.security.egd=file:/dev/./urandom -Xmx256m -jar /var/lib/jenkins/jobs/test/workspace/target/surefire/surefirebooter7806379417818082153.jar /var/lib/jenkins/jobs/test/workspace/target/surefire/surefire6244578096780428228tmp /var/lib/jenkins/jobs/test/workspace/target/surefire/surefire_09182258098509539166tmp
        [ERROR] -> [Help 1]
        [ERROR] 
        [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
        [ERROR] Re-run Maven using the -X switch to enable full debug logging.
        [ERROR] 
        [ERROR] For more information about the errors and possible solutions, please read the following articles:
        [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
        [Pipeline] junit
        Recording test results
        [Pipeline] }
        [Pipeline] // stage
        [Pipeline] }
        [Pipeline] // node
        [Pipeline] End of Pipeline
        ERROR: No test report files were found. Configuration error?
        Finished: FAILURE
curlie
  • 275
  • 2
  • 6
  • 17

1 Answers1

0

Hard to tell without seeing your job, but you can probably just reference the $WORKSPACE variable to get the top of your workspace.

Rob Hales
  • 5,123
  • 1
  • 21
  • 33
  • I am sorry for this question, but where should I make this reference ?I have also shared my jenkins file. Do you mean I have to make a change there? – curlie Oct 18 '17 at 18:36
  • Anywhere you are using hardcoded paths to a file, use $WORKSPACE/[file]. $WORKSPACE will point to the top level of your workspace. I don't see in your Jenkinsfile where you are referencing any absolute paths. Are you doing something like that in your build script? If you are using docker, your workspace in docker may be different than what you see on your agent machine. Where is this coming from: /bin/sh -c cd /var/lib/jenkins/jobs/test/workspace"? – Rob Hales Oct 18 '17 at 18:48
  • It is coming from the error report in jenkins while trying to build the tests. I have included the error report above. The problem is, when I search for a jenkins folder in the vm where jenkins is running, there is no path as mentioned above. The jenkins folder in the vm has a different path to the workspace. I think this is my problem but I dont know how to solve this, respectiely where to make the changes. – curlie Oct 19 '17 at 07:21