toolkit icon indicating copy to clipboard operation
toolkit copied to clipboard

Add support for getting a temporary directory

Open konradpabjan opened this issue 4 years ago • 5 comments

The runner has a temporary directory that gets cleaned up after each job. You can access it by doing process.env['RUNNER_TEMP'], this can be used for a lot of things such as creating temporary files for tests or during a job and users don't need to worry about this being cleaned up.

A lot of first party actions and third party actions could use this. A lot of first party actions are in-fact using the temp directory currently:

  • cache
  • tool-cache
  • setup-java and setup-python will soon be using the temp directory too for a variety of things

A method should be added to either @actions/io or @actions/core that will allow users to quickly get a temporary directory.

There should also be documentation added that mentions when this gets cleaned up, and under what circumstances it won't (runner crashes)

konradpabjan avatar Jul 15 '20 15:07 konradpabjan

This is reasonably important for sensitive things such as temporary secrets on self-hosted runners on macOS or Windows where containers are not possible.

bbqsrc avatar Sep 23 '20 18:09 bbqsrc

For the googlers coming here: In the case of a Docker-based action, one CANNOT access that. See https://github.community/t/how-can-i-access-the-current-repo-context-and-files-from-a-docker-container-action/17711/8 for details.

koppor avatar Aug 18 '21 18:08 koppor

What about using the runner's temporary directory runner.temp?

minherz avatar Nov 15 '22 05:11 minherz

runner.temp doesn't appear to be writeable. is there a usage example that demonstrates creating & deleting files in the runner.temp directory?

nelsonic avatar Jan 31 '24 15:01 nelsonic

runner.temp doesn't appear to be writeable. is there a usage example that demonstrates creating & deleting files in the runner.temp directory?

https://docs.github.com/en/actions/learn-github-actions/contexts#example-usage-of-the-runner-context

gionn avatar Jul 29 '24 13:07 gionn