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