@matheusbsbs / matheus-bagliano / commits / 5a33f541dd
Fork 0

ci: refactor docker runner script

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> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Đoàn Trần Công Danh committed Apr 4, 2020 at 08:08 UTC 5a33f541ddb52e3f45db87db7c3dd40945b9a564
4 files changed +22 -12
.travis.yml
+1 -1
@@ -32,7 +32,7 @@ matrix:
32 services:
33 - docker
34 before_install:
35 - script: ci/run-linux32-docker.sh
35 + script: ci/run-docker.sh
36 - env: jobname=StaticAnalysis
37 os: linux
38 compiler:
azure-pipelines.yml
+2 -2
@@ -489,14 +489,14 @@ jobs:
489 test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
490
491 res=0
492 - 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
492 + 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
493
494 sudo chmod a+r t/out/TEST-*.xml
495 test ! -d t/failed-test-artifacts || sudo chmod a+r t/failed-test-artifacts
496
497 test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || res=1
498 exit $res
499 - displayName: 'ci/run-linux32-docker.sh'
499 + displayName: 'jobname=Linux32 ci/run-docker.sh'
500 env:
501 GITFILESHAREPWD: $(gitfileshare.pwd)
502 - task: PublishTestResults@2
ci/run-docker-build.sh renamed
+3 -3
@@ -1,16 +1,16 @@
1 #!/bin/sh
2 #
3 -# Build and test Git in a 32-bit environment
3 +# Build and test Git inside container
4 #
5 # Usage:
6 -# run-linux32-build.sh <host-user-id>
6 +# run-docker-build.sh <host-user-id>
7 #
8
9 set -ex
10
11 if test $# -ne 1 || test -z "$1"
12 then
13 - echo >&2 "usage: run-linux32-build.sh <host-user-id>"
13 + echo >&2 "usage: run-docker-build.sh <host-user-id>"
14 exit 1
15 fi
16
ci/run-docker.sh renamed
+16 -6
@@ -1,16 +1,26 @@
1 #!/bin/sh
2 #
3 -# Download and run Docker image to build and test 32-bit Git
3 +# Download and run Docker image to build and test Git
4 #
5
6 . ${0%/*}/lib.sh
7
8 -docker pull daald/ubuntu32:xenial
8 +case "$jobname" in
9 +Linux32)
10 + CI_CONTAINER="daald/ubuntu32:xenial"
11 + ;;
12 +*)
13 + exit 1
14 + ;;
15 +esac
16 +
17 +docker pull "$CI_CONTAINER"
18
19 # Use the following command to debug the docker build locally:
11 -# $ docker run -itv "${PWD}:/usr/src/git" --entrypoint /bin/bash daald/ubuntu32:xenial
20 +# <host-user-id> must be 0 if podman is used as drop-in replacement for docker
21 +# $ docker run -itv "${PWD}:/usr/src/git" --entrypoint /bin/sh "$CI_CONTAINER"
22 # root@container:/# export jobname=<jobname>
13 -# root@container:/# /usr/src/git/ci/run-linux32-build.sh <host-user-id>
23 +# root@container:/# /usr/src/git/ci/run-docker-build.sh <host-user-id>
24
25 container_cache_dir=/tmp/travis-cache
26
@@ -26,8 +36,8 @@ docker run \
36 --env cache_dir="$container_cache_dir" \
37 --volume "${PWD}:/usr/src/git" \
38 --volume "$cache_dir:$container_cache_dir" \
29 - daald/ubuntu32:xenial \
30 - /usr/src/git/ci/run-linux32-build.sh $(id -u $USER)
39 + "$CI_CONTAINER" \
40 + /usr/src/git/ci/run-docker-build.sh $(id -u $USER)
41
42 check_unignored_build_artifacts
43