Skip to content

Travis CI: don't run the test suite as root in the 32 bit Linux build

SZEDER Gábor git 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest5 patches 1 replyIn review
  2. v15 patches 14 repliesSuperseded

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5travis-ci: use 'set -x' for the commands under 'su' in the 32 bit Linux buildci/run-linux32-build.sh+1 -00 replies
2/5travis-ci: use 'set -e' in the 32 bit Linux build jobci/run-linux32-build.sh+10 -100 replies
3/5travis-ci: don't repeat the path of the cache directoryci/lib-travisci.sh ci/run-linux32-build.sh ci/run-linux32-docker.sh +1 more+11 -60 replies
4/5travis-ci: don't run the test suite as root in the 32 bit Linux buildci/run-linux32-build.sh ci/run-linux32-docker.sh+26 -60 replies
5/5travis-ci: don't fail if user already exists on 32 bit Linux build jobci/run-linux32-build.sh+7 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCHv2 0/5] Travis CI: don't run the test suite as root in the 32 bit Linux build

This version addresses Peff comments:

- Updated the commit message to discuss the broken && chain and its consequences in patch 2.
- Fixed quoting of the 'su' command snippet and updated the commit message in patch 3.
- Squelch error from 'test "$(id -u $CI_USER)"' and add debug message in patch 5.

Additionally, it's rebased onto current master (I branched off v1 from 'sg/travis-build-during-script-phase' to avoid a conflict, but Junio applied it on top of current master).

Interdiff against 'sg/travis-linux32-sanity' at the end.

SZEDER Gábor (5):
travis-ci: use 'set -x' for the commands under 'su' in the 32 bit
Linux build
travis-ci: use 'set -e' in the 32 bit Linux build job
travis-ci: don't repeat the path of the cache directory
travis-ci: don't run the test suite as root in the 32 bit Linux build
travis-ci: don't fail if user already exists on 32 bit Linux build job

 ci/lib-travisci.sh       |  7 ++++---
 ci/run-linux32-build.sh  | 51 ++++++++++++++++++++++++++++++++++++------------
 ci/run-linux32-docker.sh |  7 +++++--
 ci/run-tests.sh          |  3 ++-
 4 files changed, 50 insertions(+), 18 deletions(-)
Signature · 1 line
2.16.1.158.ge6451079d
ci/run-linux32-build.sh +5 -5
index 13047adde..2c60d2e70 100755
@@ -33,9 +33,9 @@ then
 	CI_USER=root
 else
 	CI_USER=ci
-	if test "$(id -u $CI_USER)" = $HOST_UID
+	if test "$(id -u $CI_USER 2>/dev/null)" = $HOST_UID
 	then
-		: # user already exists with the right ID
+		echo "user '$CI_USER' already exists with the requested ID $HOST_UID"
 	else
 		useradd -u $HOST_UID $CI_USER
 	fi
@@ -51,10 +51,10 @@ else
 fi
 
 # Build and test
-linux32 --32bit i386 su -m -l $CI_USER -c "
+linux32 --32bit i386 su -m -l $CI_USER -c '
 	set -ex
 	cd /usr/src/git
-	test -n '$cache_dir' && ln -s '$cache_dir/.prove' t/.prove
+	test -n "$cache_dir" && ln -s "$cache_dir/.prove" t/.prove
 	make --jobs=2
 	make --quiet test
-"
+'