Issue: java.io.FileNotFoundException: /var/jenkins_home/workspace/fullstack-pro/servers/frontend-server/package.json (No such file or directory)
Reasons for this issue:
- This error occurred when Jenkins pipeline run on master-slave arch.
- Jenkinsfile function (getVersion, getName) try to read file from Jenkins master.
- Pipeline was designed to run on Jenkins master and there is no scope for slave to run build.
Resolution:
- Changed function from old to new one.
Below is old snippiest.
import groovy.json.JsonSlurper
def getVersion(json_file_path){
def inputFile = new File(json_file_path)
def InputJSON = new JsonSlurper().parse(inputFile)
def version = InputJSON.version
return version
}
def getName(json_file_path){
def inputFile = new File(json_file_path)
def InputJSON = new JsonSlurper().parse(inputFile)
def name = InputJSON.name
return name
}
Below is new snippiest in Jenkinsfile:
import groovy.json.JsonSlurper
def getVersion(json_file_path){
def inputFile = readFile(json_file_path)
def InputJSON = new JsonSlurper().parseText(inputFile)
def version = InputJSON.version
return version
}
def getName(json_file_path){
def inputFile = readFile(json_file_path)
def InputJSON = new JsonSlurper().parseText(inputFile)
def name = InputJSON.name
return name
}
2: Changed in Jenkinsfile :- env variables section to work on relative path instead of full path to avoid directory structure change issues.
environment {
FRONTEND_PACKAGE_NAME = getName("./servers/frontend-server/package.json")
FRONTEND_PACKAGE_VERSION = getVersion("./servers/frontend-server/package.json")
BACKEND_PACKAGE_NAME = getName("./servers/backend-server/package.json")
BACKEND_PACKAGE_VERSION = getVersion("./servers/backend-server/package.json")
HEMERA_PACKAGE_NAME = getName("./servers/hemera-server/package.json")
HEMERA_PACKAGE_VERSION = getVersion("./servers/hemera-server/package.json")
}
Issue: java.io.FileNotFoundException: /var/jenkins_home/workspace/fullstack-pro/servers/frontend-server/package.json (No such file or directory)
Reasons for this issue:
Resolution:
Below is old snippiest.
Below is new snippiest in Jenkinsfile:
2: Changed in Jenkinsfile :- env variables section to work on relative path instead of full path to avoid directory structure change issues.