diff --git a/resources/docker-images/android/Dockerfile b/resources/docker-images/android/Dockerfile index 923fb91eb3..8fb47c8a38 100644 --- a/resources/docker-images/android/Dockerfile +++ b/resources/docker-images/android/Dockerfile @@ -39,9 +39,13 @@ RUN <> /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 diff --git a/resources/docker-images/build.sh b/resources/docker-images/build.sh index 33f638ed6a..c07e732efb 100755 --- a/resources/docker-images/build.sh +++ b/resources/docker-images/build.sh @@ -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 diff --git a/resources/docker-images/core/Dockerfile b/resources/docker-images/core/Dockerfile index c6a2454156..db22a66b4f 100644 --- a/resources/docker-images/core/Dockerfile +++ b/resources/docker-images/core/Dockerfile @@ -34,25 +34,27 @@ RUN echo "export EMSCRIPTEN_BASE=/home/build/emsdk/upstream/emscripten" >> /usr/ # Finish bashwrapper script and adjust permissions RUN <> /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 diff --git a/resources/docker-images/developer/Dockerfile b/resources/docker-images/developer/Dockerfile index cb49ac04d7..b2f57df056 100644 --- a/resources/docker-images/developer/Dockerfile +++ b/resources/docker-images/developer/Dockerfile @@ -34,12 +34,13 @@ RUN echo "export EMSCRIPTEN_BASE=/home/build/emsdk/upstream/emscripten" >> /usr/ # Finish bashwrapper script and adjust permissions RUN <> /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 diff --git a/resources/docker-images/docker-build.inc.sh b/resources/docker-images/docker-build.inc.sh index 109d886c5e..e6427a75cb 100644 --- a/resources/docker-images/docker-build.inc.sh +++ b/resources/docker-images/docker-build.inc.sh @@ -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 diff --git a/resources/docker-images/linux/Dockerfile b/resources/docker-images/linux/Dockerfile index 269941af70..a63aace65d 100644 --- a/resources/docker-images/linux/Dockerfile +++ b/resources/docker-images/linux/Dockerfile @@ -42,12 +42,14 @@ COPY run-tests.sh /usr/bin/run-tests.sh # Finish bashwrapper script and adjust permissions RUN <> /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