Re: [PATCH v2 3/4] travis: build and test on Linux with musl libc and busybox
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Apr 1, 2020, 22:18 UTC
- Message-ID
- <20200401221835.GH2224@szeder.dev>
- In-Reply-To
- <6cf6400f2e0f7336e9b13ddbf412101c4ab48dc5.1585474409.git.congdanhqx@gmail.com>
On Sun, Mar 29, 2020 at 05:12:31PM +0700, Đoàn Trần Công Danh wrote:
> Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Show 25 quoted lines
> diff --git a/ci/run-alpine-build.sh b/ci/run-alpine-build.sh
> new file mode 100755
> index 0000000000..c83df536e4
> --- /dev/null
> +++ b/ci/run-alpine-build.sh
> @@ -0,0 +1,31 @@
> +#!/bin/sh
> +#
> +# Build and test Git in Alpine Linux
> +#
> +# Usage:
> +# run-alpine-build.sh <host-user-id>
> +#
> +
> +set -ex
> +
> +useradd () {
> + adduser -D "$@"
> +}
> +
> +. "${0%/*}/lib-docker.sh"
> +
> +# Update packages to the latest available versions
> +apk add --update autoconf build-base curl-dev openssl-dev expat-dev \
> + gettext pcre2-dev python3 musl-libintl >/dev/nullIn 'ci/run-docker.sh' we run 'docker run' with a bunch of '--env ...' options to make some important environment variables available inside the container. At this point in this script all those variables are set to the expected values, but ...
> +# Build and test > +su -m -l $CI_USER -c '
... but here, for some reason, those environment variables are not set anymore. This is bad, because this CI job then builds Git sequentially, runs the tests sequentially, runs the tests with 'make' instead of 'prove', and runs the tests without '-V -x'. IOW, it's slow, it produces a lot of useless output, it doesn't report all the failures, and doesn't tell us anything about the failures.
Show 6 quoted lines
> + set -ex > + cd /usr/src/git > + test -n "$cache_dir" && ln -s "$cache_dir/.prove" t/.prove > + autoconf > + echo "PYTHON_PATH=/usr/bin/python3" >config.mak > + ./configure --with-libpcre
The recommended way to build Git is without autoconf and configure. You can set the PYTHON_PATH and USE_LIBPCRE Makefile knobs in MAKEFLAGS in 'ci/lib.sh', but to be able to access MAKEFLAGS in the container you'll need to build this patch series on top of:
https://public-inbox.org/git/20200401212151.15164-1-szeder.dev@gmail.com/
Show 21 quoted lines
> + make > + make test > +' > diff --git a/ci/run-docker.sh b/ci/run-docker.sh > index be698817cb..f203db03cf 100755 > --- a/ci/run-docker.sh > +++ b/ci/run-docker.sh > @@ -10,6 +10,10 @@ Linux32) > CI_TARGET=linux32 > CI_CONTAINER="daald/ubuntu32:xenial" > ;; > +linux-musl) > + CI_TARGET=alpine > + CI_CONTAINER=alpine > + ;; > *) > exit 1 ;; > esac > -- > 2.26.0.302.g234993491e >