toolkit
toolkit copied to clipboard
Add support for getting a temporary directory
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
andsetup-python
will soon be using thetemp
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)
This is reasonably important for sensitive things such as temporary secrets on self-hosted runners on macOS or Windows where containers are not possible.
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.
What about using the runner's temporary directory runner.temp
?
runner.temp
doesn't appear to be writeable.
is there a usage example that demonstrates creating & deleting files in the runner.temp
directory?
runner.temp
doesn't appear to be writeable. is there a usage example that demonstrates creating & deleting files in therunner.temp
directory?
https://docs.github.com/en/actions/learn-github-actions/contexts#example-usage-of-the-runner-context