]> git.ipfire.org Git - thirdparty/git.git/commitdiff
travis-ci: don't fail if user already exists on 32 bit Linux build job
authorSZEDER Gábor <szeder.dev@gmail.com>
Mon, 29 Jan 2018 17:17:13 +0000 (18:17 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 30 Jan 2018 21:27:19 +0000 (13:27 -0800)
The 32 bit Linux build job runs in a Docker container, which lends
itself to running and debugging locally, too.  Especially during
debugging one usually doesn't want to start with a fresh container
every time, to save time spent on installing a bunch of dependencies.
However, that doesn't work quite smootly, because the script running
in the container always creates a new user, which then must be removed
every time before subsequent executions, or the build script fails.

Make this process more convenient and don't try to create that user if
it already exists and has the right user ID in the container, so
developers don't have to bother with running a 'userdel' each time
before they run the build script.

The build job on Travis CI always starts with a fresh Docker
container, so this change doesn't make a difference there.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ci/run-linux32-build.sh

index 8c1b500e63e3f6f0d075f556670508e756d60c56..2c60d2e70ae56b59b1ff8046a21b9bc4bf87e3e6 100755 (executable)
@@ -33,7 +33,13 @@ then
        CI_USER=root
 else
        CI_USER=ci
-       useradd -u $HOST_UID $CI_USER
+       if test "$(id -u $CI_USER 2>/dev/null)" = $HOST_UID
+       then
+               echo "user '$CI_USER' already exists with the requested ID $HOST_UID"
+       else
+               useradd -u $HOST_UID $CI_USER
+       fi
+
        # Due to a bug the test suite was run as root in the past, so
        # a prove state file created back then is only accessible by
        # root.  Now that bug is fixed, the test suite is run as a