fix: ensure setting /github/workdir as Git safe directory works always

When running super-linter on in a self hosted runner based on Action
Runner Controller in K8s container mode the /github/home directory is
not neccesarily mounted. But since we expect this directory to exist
super-linter fails to set /github/workspace as a Git safe directory:

    2024-10-04 17:58:37 [INFO]   Successfully validated GITHUB_WORKSPACE: /github/workspace
    2024-10-04 17:58:37 [DEBUG]   Configuring Git safe directories
    2024-10-04 17:58:37 [DEBUG]   Set /github/workspace as a Git safe directory
    error: could not lock config file /github/home/.gitconfig: No such file or directory
    2024-10-04 17:58:37 [FATAL]   Cannot configure /github/workspace as a Git safe directory.

Making sure this directory exists in container image ensures that under
no circumstances we can fail - if the action runner provides
/github/home it will be mounted over, and if not we provide a directory
where git can actually create the new .gitconfig.

This also defaults the HOME environment variable to /github/home as it
is the default in most places. So if somebody decides to override HOME
they are also expected to ensure that this directory exists (or is a
volume mount)
This commit is contained in:
Andre Klärner 2024-10-08 16:50:27 +02:00
parent fd2899662d
commit b4b6690586
No known key found for this signature in database
GPG key ID: 6528912C6687A3E2

View file

@ -435,6 +435,11 @@ ENV RENOVATE_X_IGNORE_RE2="true"
ENV VERSION_FILE="/action/linterVersions.txt"
RUN mkdir /action
# create the homedir, so that in case it is not present (like on action-runner-controller based selfhosted runners)
# we do not fail at setting /github/workspace as a safe git directory
ENV HOME="/github/home"
RUN mkdir -p "${HOME}"
ENTRYPOINT ["/action/lib/linter.sh"]
FROM base_image AS slim