git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3 4/6] ci: refactor docker runner script

From
Đoàn Trần Công Danh <congdanhqx@gmail.com>
Date
Apr 2, 2020, 13:04 UTC
Message-ID
<22cc7960c3a3a74ad3cd8e7e9ea36d3952249702.1585832270.git.congdanhqx@gmail.com>
In-Reply-To
<cover.1585832270.git.congdanhqx@gmail.com>
We will support alpine check in docker later in this series.

While we're at it, tell people to run as root in podman, if podman is used as drop-in replacement for docker, because podman will map host-user to container's root, therefore, mapping their permission.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
---
 .travis.yml                                   |  2 +-
 azure-pipelines.yml                           |  4 ++--
 ...n-linux32-build.sh => run-docker-build.sh} |  6 ++---
 ci/{run-linux32-docker.sh => run-docker.sh}   | 22 ++++++++++++++-----
 4 files changed, 22 insertions(+), 12 deletions(-)
 rename ci/{run-linux32-build.sh => run-docker-build.sh} (93%)
 rename ci/{run-linux32-docker.sh => run-docker.sh} (53%)
diff --git a/.travis.yml b/.travis.yml
index fc5730b085..069aeeff3c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -32,7 +32,7 @@ matrix:
       services:
         - docker
       before_install:
-      script: ci/run-linux32-docker.sh
+      script: ci/run-docker.sh
     - env: jobname=StaticAnalysis
       os: linux
       compiler:
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 675c3a43c9..11413f66f8 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -489,14 +489,14 @@ jobs:
        test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
 
        res=0
-       sudo AGENT_OS="$AGENT_OS" BUILD_BUILDNUMBER="$BUILD_BUILDNUMBER" BUILD_REPOSITORY_URI="$BUILD_REPOSITORY_URI" BUILD_SOURCEBRANCH="$BUILD_SOURCEBRANCH" BUILD_SOURCEVERSION="$BUILD_SOURCEVERSION" SYSTEM_PHASENAME="$SYSTEM_PHASENAME" SYSTEM_TASKDEFINITIONSURI="$SYSTEM_TASKDEFINITIONSURI" SYSTEM_TEAMPROJECT="$SYSTEM_TEAMPROJECT" CC=$CC MAKEFLAGS="$MAKEFLAGS" bash -lxc ci/run-linux32-docker.sh || res=1
+       sudo AGENT_OS="$AGENT_OS" BUILD_BUILDNUMBER="$BUILD_BUILDNUMBER" BUILD_REPOSITORY_URI="$BUILD_REPOSITORY_URI" BUILD_SOURCEBRANCH="$BUILD_SOURCEBRANCH" BUILD_SOURCEVERSION="$BUILD_SOURCEVERSION" SYSTEM_PHASENAME="$SYSTEM_PHASENAME" SYSTEM_TASKDEFINITIONSURI="$SYSTEM_TASKDEFINITIONSURI" SYSTEM_TEAMPROJECT="$SYSTEM_TEAMPROJECT" CC=$CC MAKEFLAGS="$MAKEFLAGS" jobname=Linux32 bash -lxc ci/run-docker.sh || res=1
 
        sudo chmod a+r t/out/TEST-*.xml
        test ! -d t/failed-test-artifacts || sudo chmod a+r t/failed-test-artifacts
 
        test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || res=1
        exit $res
-    displayName: 'ci/run-linux32-docker.sh'
+    displayName: 'jobname=Linux32 ci/run-docker.sh'
     env:
       GITFILESHAREPWD: $(gitfileshare.pwd)
   - task: PublishTestResults@2
diff --git a/ci/run-linux32-build.sh b/ci/run-docker-build.sh
similarity index 93%
rename from ci/run-linux32-build.sh
rename to ci/run-docker-build.sh
index 44bb332f64..a05b48c559 100755
--- a/ci/run-linux32-build.sh
+++ b/ci/run-docker-build.sh
@@ -1,16 +1,16 @@
 #!/bin/sh
 #
-# Build and test Git in a 32-bit environment
+# Build and test Git inside container
 #
 # Usage:
-#   run-linux32-build.sh <host-user-id>
+#   run-docker-build.sh <host-user-id>
 #
 
 set -ex
 
 if test $# -ne 1 || test -z "$1"
 then
-	echo >&2 "usage: run-linux32-build.sh <host-user-id>"
+	echo >&2 "usage: run-docker-build.sh <host-user-id>"
 	exit 1
 fi
 
diff --git a/ci/run-linux32-docker.sh b/ci/run-docker.sh
similarity index 53%
rename from ci/run-linux32-docker.sh
rename to ci/run-docker.sh
index 54186b6aa7..3881f99b53 100755
--- a/ci/run-linux32-docker.sh
+++ b/ci/run-docker.sh
@@ -1,16 +1,26 @@
 #!/bin/sh
 #
-# Download and run Docker image to build and test 32-bit Git
+# Download and run Docker image to build and test Git
 #
 
 . ${0%/*}/lib.sh
 
-docker pull daald/ubuntu32:xenial
+case "$jobname" in
+Linux32)
+	CI_CONTAINER="daald/ubuntu32:xenial"
+	;;
+*)
+	exit 1
+	;;
+esac
+
+docker pull "$CI_CONTAINER"
 
 # Use the following command to debug the docker build locally:
-# $ docker run -itv "${PWD}:/usr/src/git" --entrypoint /bin/bash daald/ubuntu32:xenial
+# <host-user-id> must be 0 if podman is used as drop-in replacement for docker
+# $ docker run -itv "${PWD}:/usr/src/git" --entrypoint /bin/sh "$CI_CONTAINER"
 # root@container:/# export jobname=<jobname>
-# root@container:/# /usr/src/git/ci/run-linux32-build.sh <host-user-id>
+# root@container:/# /usr/src/git/ci/run-docker-build.sh <host-user-id>
 
 container_cache_dir=/tmp/travis-cache
 
@@ -26,8 +36,8 @@ docker run \
 	--env cache_dir="$container_cache_dir" \
 	--volume "${PWD}:/usr/src/git" \
 	--volume "$cache_dir:$container_cache_dir" \
-	daald/ubuntu32:xenial \
-	/usr/src/git/ci/run-linux32-build.sh $(id -u $USER)
+	"$CI_CONTAINER" \
+	/usr/src/git/ci/run-docker-build.sh $(id -u $USER)
 
 check_unignored_build_artifacts
 
-- 
2.26.0.334.g6536db25bb
Previous: Đoàn Trần Công DanhNext: Đoàn Trần Công Danh
Message 28 of 42 in “add travis job for linux with musl libc”
  1. 0/3 add travis job for linux with musl libcĐoàn Trần Công Danh, Mar 26, 2020
  2. 1/3 ci: libify logic for usage and checking CI_USERĐoàn Trần Công Danh, Mar 26, 2020
  3. 2/3 ci: refactor docker runner scriptĐoàn Trần Công Danh, Mar 26, 2020
  4. Eric SunshineMar 26, 2020
  5. SZEDER GáborMar 28, 2020
  6. Danh DoanMar 29, 2020
  7. 3/3 travis: build and test on Linux with musl libc and busyboxĐoàn Trần Công Danh, Mar 26, 2020
  8. Junio C HamanoMar 29, 2020
  9. 0/4 Travis + Azure jobs for linux with musl libcĐoàn Trần Công Danh, Mar 29, 2020
  10. 1/4 ci: libify logic for usage and checking CI_USERĐoàn Trần Công Danh, Mar 29, 2020
  11. 2/4 ci: refactor docker runner scriptĐoàn Trần Công Danh, Mar 29, 2020
  12. SZEDER GáborApr 1, 2020
  13. 3/4 travis: build and test on Linux with musl libc and busyboxĐoàn Trần Công Danh, Mar 29, 2020
  14. SZEDER GáborApr 1, 2020
  15. Danh DoanApr 2, 2020
  16. Johannes SchindelinApr 7, 2020
  17. Junio C HamanoApr 7, 2020
  18. Johannes SchindelinApr 10, 2020
  19. 4/4 t3402: use POSIX compliant regex(7)Đoàn Trần Công Danh, Mar 29, 2020
  20. Junio C HamanoMar 29, 2020
  21. 0/6 Travis + Azure jobs for linux with musl libcĐoàn Trần Công Danh, Apr 2, 2020
  22. 1/6 ci: make MAKEFLAGS available inside the Docker container in the Linux32 jobĐoàn Trần Công Danh, Apr 2, 2020
  23. 2/6 ci/lib-docker: preserve required environment variablesĐoàn Trần Công Danh, Apr 2, 2020
  24. SZEDER GáborApr 3, 2020
  25. Danh DoanApr 3, 2020
  26. SZEDER GáborApr 3, 2020
  27. 3/6 ci/linux32: parameterise command to switch archĐoàn Trần Công Danh, Apr 2, 2020
  28. 4/6 ci: refactor docker runner scriptĐoàn Trần Công Danh, Apr 2, 2020
  29. 5/6 ci/linux32: libify install-dependencies stepĐoàn Trần Công Danh, Apr 2, 2020
  30. 6/6 travis: build and test on Linux with musl libc and busyboxĐoàn Trần Công Danh, Apr 2, 2020
  31. Junio C HamanoApr 2, 2020
  32. Danh DoanApr 3, 2020
  33. 0/6 Travis jobs for linux with musl libcĐoàn Trần Công Danh, Apr 4, 2020
  34. 1/6 ci: make MAKEFLAGS available inside the Docker container in the Linux32 jobĐoàn Trần Công Danh, Apr 4, 2020
  35. 2/6 ci/lib-docker: preserve required environment variablesĐoàn Trần Công Danh, Apr 4, 2020
  36. 3/6 ci/linux32: parameterise command to switch archĐoàn Trần Công Danh, Apr 4, 2020
  37. 4/6 ci: refactor docker runner scriptĐoàn Trần Công Danh, Apr 4, 2020
  38. 5/6 ci/linux32: libify install-dependencies stepĐoàn Trần Công Danh, Apr 4, 2020
  39. 6/6 travis: build and test on Linux with musl libc and busyboxĐoàn Trần Công Danh, Apr 4, 2020
  40. Junio C HamanoApr 5, 2020
  41. Johannes SchindelinApr 7, 2020
  42. Junio C HamanoApr 7, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.