Changing permissions only in the case if building and testing on GitHub

This commit is contained in:
Markus Greiner 2025-10-22 15:39:17 +02:00
parent 54f5fc1ea3
commit c9b44d33c7
6 changed files with 57 additions and 40 deletions

View file

@ -39,9 +39,13 @@ RUN <<EOF cat >> /usr/bin/bashwrapper
uid=\$(stat -c "%u" /home/build/build)
gid=\$(stat -c "%g" /home/build/build)
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Adjusting build directory ownership to uid/gid \$(id -un):\$(id -gn)"
sudo chown -R build:build /home/build/build
if [[ -v CHANGE_PERMISSIONS ]]; then
uid=\$(stat -c "%u" /home/build/build)
gid=\$(stat -c "%g" /home/build/build)
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Adjusting build directory ownership to uid/gid \$(id -un):\$(id -gn)"
sudo chown -R build:build /home/build/build
fi
fi
if [[ "\$@" =~ test ]] && [ -f /usr/bin/run-tests.sh ]; then
@ -50,9 +54,11 @@ else
"\${@:-bash}"
fi
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Reverting build directory ownership to uid/gid \${uid}:\${gid}"
sudo chown -R \${uid}:\${gid} /home/build/build
if [[ -v CHANGE_PERMISSIONS ]]; then
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Reverting build directory ownership to uid/gid \${uid}:\${gid}"
sudo chown -R \${uid}:\${gid} /home/build/build
fi
fi
EOF

View file

@ -105,7 +105,7 @@ if builder_has_action build; then
fi
builder_run_action test:core test_action core
# builder_run_action test:linux test_action linux
builder_run_action test:linux test_action linux
builder_run_action test:web test_action web
# Android uses artifacts from web, so it has to come after web
builder_run_action test:android test_action android

View file

@ -34,25 +34,27 @@ RUN echo "export EMSCRIPTEN_BASE=/home/build/emsdk/upstream/emscripten" >> /usr/
# Finish bashwrapper script and adjust permissions
RUN <<EOF cat >> /usr/bin/bashwrapper
uid=\$(stat -c "%u" /home/build/build)
gid=\$(stat -c "%g" /home/build/build)
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Adjusting build directory ownership to uid/gid \$(id -un):\$(id -gn)"
sudo chown -R build:build /home/build/build
if [[ -v CHANGE_PERMISSIONS ]]; then
uid=\$(stat -c "%u" /home/build/build)
gid=\$(stat -c "%g" /home/build/build)
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Adjusting build directory ownership to uid/gid \$(id -un):\$(id -gn)"
sudo chown -R build:build /home/build/build
fi
fi
if [[ "\$@" =~ test ]] && [ -f /usr/bin/run-tests.sh ]; then
/usr/bin/run-tests.sh "\${@:-bash}"
else
"\${@:-bash}"
fi
if [[ "\$@" =~ test ]] && [ -f /usr/bin/run-tests.sh ]; then
/usr/bin/run-tests.sh "\${@:-bash}"
else
"\${@:-bash}"
fi
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Reverting build directory ownership to uid/gid \${uid}:\${gid}"
sudo chown -R \${uid}:\${gid} /home/build/build
if [[ -v CHANGE_PERMISSIONS ]]; then
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Reverting build directory ownership to uid/gid \${uid}:\${gid}"
sudo chown -R \${uid}:\${gid} /home/build/build
fi
fi
EOF
# now, switch to build user

View file

@ -34,12 +34,13 @@ RUN echo "export EMSCRIPTEN_BASE=/home/build/emsdk/upstream/emscripten" >> /usr/
# Finish bashwrapper script and adjust permissions
RUN <<EOF cat >> /usr/bin/bashwrapper
uid=\$(stat -c "%u" /home/build/build)
gid=\$(stat -c "%g" /home/build/build)
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Adjusting build directory ownership to uid/gid \$(id -un):\$(id -gn)"
sudo chown -R build:build /home/build/build
if [[ -v CHANGE_PERMISSIONS ]]; then
uid=\$(stat -c "%u" /home/build/build)
gid=\$(stat -c "%g" /home/build/build)
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Adjusting build directory ownership to uid/gid \$(id -un):\$(id -gn)"
sudo chown -R build:build /home/build/build
fi
fi
if [[ "\$@" =~ test ]] && [ -f /usr/bin/run-tests.sh ]; then
@ -48,9 +49,11 @@ else
"\${@:-bash}"
fi
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Reverting build directory ownership to uid/gid \${uid}:\${gid}"
sudo chown -R \${uid}:\${gid} /home/build/build
if [[ -v CHANGE_PERMISSIONS ]]; then
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Reverting build directory ownership to uid/gid \${uid}:\${gid}"
sudo chown -R \${uid}:\${gid} /home/build/build
fi
fi
EOF

View file

@ -87,7 +87,9 @@ setup_docker() {
if [[ "${MSYSTEM:-}" == "MINGW64" ]]; then
DOCKER_RUN_ARGS+=(--env DOCKER_RUN_AS_ROOT=1)
fi
if ! builder_is_running_on_gha ; then
if builder_is_running_on_gha ; then
DOCKER_RUN_ARGS+=(--env CHANGE_PERMISSIONS=1)
else
DOCKER_RUN_ARGS+=(-t)
fi

View file

@ -42,12 +42,14 @@ COPY run-tests.sh /usr/bin/run-tests.sh
# Finish bashwrapper script and adjust permissions
RUN <<EOF cat >> /usr/bin/bashwrapper
uid=\$(stat -c "%u" /home/build/build)
gid=\$(stat -c "%g" /home/build/build)
if [[ -v CHANGE_PERMISSIONS ]]; then
uid=\$(stat -c "%u" /home/build/build)
gid=\$(stat -c "%g" /home/build/build)
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Adjusting build directory ownership to uid/gid \$(id -un):\$(id -gn)"
sudo chown -R build:build /home/build/build
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Adjusting build directory ownership to uid/gid \$(id -un):\$(id -gn)"
sudo chown -R build:build /home/build/build
fi
fi
if [[ "\$@" =~ test ]] && [ -f /usr/bin/run-tests.sh ]; then
@ -56,9 +58,11 @@ else
"\${@:-bash}"
fi
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Reverting build directory ownership to uid/gid \${uid}:\${gid}"
sudo chown -R \${uid}:\${gid} /home/build/build
if [[ -v CHANGE_PERMISSIONS ]]; then
if [[ "\${uid}" != "\$(id -u)" || "\${gid}" != "\$(id -g)" ]]; then
echo "Reverting build directory ownership to uid/gid \${uid}:\${gid}"
sudo chown -R \${uid}:\${gid} /home/build/build
fi
fi
EOF