Skip to content

java.io.FileNotFoundException: /var/jenkins_home/workspace/fullstack-pro/servers/frontend-server/package.json (No such file or directory) #61

@onjectiondevops

Description

@onjectiondevops

Issue: java.io.FileNotFoundException: /var/jenkins_home/workspace/fullstack-pro/servers/frontend-server/package.json (No such file or directory)

Reasons for this issue:

  1. This error occurred when Jenkins pipeline run on master-slave arch.
  2. Jenkinsfile function (getVersion, getName) try to read file from Jenkins master.
  3. Pipeline was designed to run on Jenkins master and there is no scope for slave to run build.

Resolution:

  1. 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")
  }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions