If you receive an error telling you that you do not have permissions to create a directory or to write a file to a directory, this is likely an indication that your script is attempting to write to a directory that you do not own.
This is a somewhat common pitfall that many users run into when moving into a CI environment.
Builds run as the
distiller user on MacOS and typically
ubunutu on Linux. These users only have write permissions in their
$HOME folders and places like
/tmp. This is not unique to CI and is true by default in almost all Linux/Unix environments.
To confirm the user your build runs as has proper permissions, you can run the
whoami command within your build process.
There are a couple of possible solutions to this issue:
- Create a folder that the user running the build has permissions to.
- Change the ownership of the directory with the
chowncommand before trying to write to it.
We recommend the first solution. If you decide to go with the second solution then a command like this should work in both MacOS and Linux builds.
chown -R $USER:$USER /path/to/directory
$USER is a global environment variable that refers to the current logged in user.
/path/to/directory should be replaced with the path to where you want to write to.