ci/lib.sh: add support for Azure Pipelines
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Tue, 29 Jan 2019 14:19:28 +0000 (06:19 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 29 Jan 2019 17:26:46 +0000 (09:26 -0800)
This patch introduces a conditional arm that defines some environment
variables and a function that displays the URL given the job id (to
identify previous runs for known-good trees).

Because Azure Pipeline's macOS agents already have git-lfs and gettext
installed, we can leave `BREW_INSTALL_PACKAGES` empty (unlike in
Travis' case).

Note: this patch does not introduce an Azure Pipelines definition yet;
That is left for the next patch.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ci/lib.sh
ci/print-test-failures.sh
index 32a28fd209bb184b173b47d365380d935ef2fef8..55057768765bd1ffd81f27e3b5ae9a42111c9dcb 100755 (executable)
--- a/ci/lib.sh
+++ b/ci/lib.sh
@@ -102,6 +102,31 @@ then
        export GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
        export GIT_TEST_OPTS="--verbose-log -x --immediate"
        export MAKEFLAGS="--jobs=2"
+elif test -n "$SYSTEM_COLLECTIONURI" || test -n "$SYSTEM_TASKDEFINITIONSURI"
+then
+       CI_TYPE=azure-pipelines
+       # We are running in Azure Pipelines
+       CI_BRANCH="$BUILD_SOURCEBRANCH"
+       CI_COMMIT="$BUILD_SOURCEVERSION"
+       CI_JOB_ID="$BUILD_BUILDID"
+       CI_JOB_NUMBER="$BUILD_BUILDNUMBER"
+       CI_OS_NAME="$(echo "$AGENT_OS" | tr A-Z a-z)"
+       test darwin != "$CI_OS_NAME" || CI_OS_NAME=osx
+       CI_REPO_SLUG="$(expr "$BUILD_REPOSITORY_URI" : '.*/\([^/]*/[^/]*\)$')"
+       CC="${CC:-gcc}"
+
+       # use a subdirectory of the cache dir (because the file share is shared
+       # among *all* phases)
+       cache_dir="$HOME/test-cache/$SYSTEM_PHASENAME"
+
+       url_for_job_id () {
+               echo "$SYSTEM_TASKDEFINITIONSURI$SYSTEM_TEAMPROJECT/_build/results?buildId=$1"
+       }
+
+       BREW_INSTALL_PACKAGES=
+       export GIT_PROVE_OPTS="--timer --jobs 10 --state=failed,slow,save"
+       export GIT_TEST_OPTS="--verbose-log -x --write-junit-xml"
+       export MAKEFLAGS="--jobs=10"
 else
        echo "Could not identify CI type" >&2
        exit 1
index cf321b474df32a25946e38425fc552702f2f0ace..e688a26f0d61464c473fd7f0c7fce1a805269b2c 100755 (executable)
@@ -41,6 +41,11 @@ do
                case "$CI_TYPE" in
                travis)
                        ;;
+               azure-pipelines)
+                       mkdir -p failed-test-artifacts
+                       mv "$trash_dir" failed-test-artifacts
+                       continue
+                       ;;
                *)
                        echo "Unhandled CI type: $CI_TYPE" >&2
                        exit 1