Pipeline - Using java.io.File in a Pipeline description

Article ID:230922128
1 minute readKnowledge base

Issue

Within a Pipeline definition (Jenkinsfile), I need to work with files, to store a value, read its content or validate that the file exists. However, using java.io.File is not working or not permitted inside the _ groovy sandbox_. How can I achieve those tasks?

Resolution

Using java.io.File inside a Pipeline description cannot work as the Pipeline it self is executed on the controller when you want to write/read/test a file on the agent, where the build is done.

So, Pipeline plugins bring some steps in order to provide those features:

  • readFile to read the content of a file in the workspace

  • writeFile to write to a file in the workspace

  • fileExists to test if a file does or not exist in the workspace

  • touch to create an empty file (from pipeline-utility-steps-plugin) in the workspace

You can details on the exact syntax for those step using the snipper generator when creating a plain Pipeline job.

This article is part of our Knowledge Base and is provided for guidance-based purposes only. The solutions or workarounds described here are not officially supported by CloudBees and may not be applicable in all environments. Use at your own discretion, and test changes in a safe environment before applying them to production systems.