git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH v2 00/13] Offer to run CI/PR builds in Azure Pipelines
Date: Mon, 15 Oct 2018 03:11:57 -0700 (PDT)	[thread overview]
Message-ID: <pull.31.v2.git.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.31.git.gitgitgadget@gmail.com>

For a long time already, we have Git's source code continuously tested via
Travis CI, see e.g. https://travis-ci.org/git/git/builds/421738884. It has
served us well, and more and more developers actually pay attention and
benefit from the testing this gives us.

It is also an invaluable tool for contributors who can validate their code
contributions via PRs on GitHub, e.g. to verify that their tests do actually
run on macOS (i.e. with the BSD family of Unix tools instead of the GNU
one).

The one sad part about this is the Windows support. Travis lacks it, and we
work around that by using Azure Pipelines (the CI part of Azure DevOps,
formerly known as Visual Studio Team Services) indirectly: one phase in
Travis would trigger a build, wait for its log, and then paste that log.

As Git's Windows builds (and tests!) take quite a bit of time, Travis often
timed out, or somehow the trigger did not work, and for security reasons
(the Windows builds are performed in a private pool of containers), the
Windows builds are completely disabled for Pull Requests on GitHub.

One might ask why we did not use Azure Pipelines directly. There were a
couple of reasons for that:

 * most notably, Azure Pipelines' build logs could not be viewed
   anonymously,
 * while Azure Pipelines had Linux and Windows agents, it lacked macOS
   agents,
 * etc

The main two reasons no longer apply: macOS agents are available now
[https://docs.microsoft.com/en-us/azure/devops/release-notes/2018/jul-10-vsts]
, and there is a limited preview of "public projects"
[https://blogs.msdn.microsoft.com/devops/2018/04/27/vsts-public-projects-limited-preview/]
, i.e. it is possible to configure a Azure Pipelines project so that anybody
can view the logs.

I had secured such a public project for Git for Windows already, and I
recently also got one for Git. For now, the latter is hooked up with my
personal git.git fork on GitHub, but it is my hope that I convince y'all
that these Azure Pipelines builds are a good idea, and then hook it up with 
https://github.com/git/git.

As a special treat, this patch series adds the ability to present the
outcome of Git's test suite as JUnit-style .xml files. This allows the Azure
Pipelines build to present fun diagrams, trends, and makes it a lot easier
to drill down to test failures than before. See for example 
https://dev.azure.com/git/git/_build/results?buildId=113&view=ms.vss-test-web.test-result-details
[https://dev.azure.com/git/git/_build/results?buildId=113&view=ms.vss-test-web.test-result-details] 
(you can click on the label of the failed test, and then see the detailed
output in the right pane).

This patch series took way more time than I had originally planned, but I
think that in particular the advanced display of the test results was worth
it. Please let me know what you think about this.

Changes since v1:

 * Removed a superfluous eval.
 * Added the commit that fixes the Travis PR builds targeting master that 
   just happens to be tagged (see 
   https://travis-ci.org/git/git/jobs/424276413 for an incorrectly-skipped
   build).
 * The commit messages and the cover letter now reflect the name change from
   Visual Studio Team Services to Azure DevOps (and in particular, Azure
   Pipelines for the automated builds).
 * Now we're using test_atexit (which we introduced for that purpose)
   instead of hard-coding kill_p4d and stop_git_daemon.
 * The build should now also succeed for Pull Requests (where secret
   variables are not available, for security reasons, and as a consequence
   the file share cannot be mounted).
 * The shell scripted parts now use proper && chains.

Johannes Schindelin (13):
  ci: rename the library of common functions
  ci/lib.sh: encapsulate Travis-specific things
  test-date: add a subcommand to measure times in shell scripts
  tests: optionally write results as JUnit-style .xml
  ci/lib.sh: add support for Azure Pipelines
  Add a build definition for Azure DevOps
  tests: introduce `test_atexit`
  git-daemon: use `test_atexit` in the tests
  git-p4: use `test_atexit` to kill the daemon
  tests: include detailed trace logs with --write-junit-xml upon failure
  tests: record more stderr with --write-junit-xml in case of failure
  README: add a build badge (status of the Azure Pipelines build)
  travis: fix skipping tagged releases

 README.md                                  |   2 +
 azure-pipelines.yml                        | 319 +++++++++++++++++++++
 ci/install-dependencies.sh                 |   5 +-
 ci/{lib-travisci.sh => lib.sh}             |  67 ++++-
 ci/mount-fileshare.sh                      |  26 ++
 ci/print-test-failures.sh                  |   4 +-
 ci/run-build-and-tests.sh                  |   2 +-
 ci/run-linux32-docker.sh                   |   2 +-
 ci/run-static-analysis.sh                  |   2 +-
 ci/run-windows-build.sh                    |   2 +-
 ci/test-documentation.sh                   |   3 +-
 t/.gitignore                               |   1 +
 t/helper/test-date.c                       |  12 +
 t/interop/i5500-git-daemon.sh              |   1 -
 t/lib-git-daemon.sh                        |   3 +-
 t/lib-git-p4.sh                            |  10 +-
 t/t0000-basic.sh                           |  20 ++
 t/t5570-git-daemon.sh                      |   1 -
 t/t9800-git-p4-basic.sh                    |   4 -
 t/t9801-git-p4-branch.sh                   |   4 -
 t/t9802-git-p4-filetype.sh                 |   4 -
 t/t9803-git-p4-shell-metachars.sh          |   4 -
 t/t9804-git-p4-label.sh                    |   4 -
 t/t9805-git-p4-skip-submit-edit.sh         |   4 -
 t/t9806-git-p4-options.sh                  |   5 -
 t/t9807-git-p4-submit.sh                   |   4 -
 t/t9808-git-p4-chdir.sh                    |   4 -
 t/t9809-git-p4-client-view.sh              |   4 -
 t/t9810-git-p4-rcs.sh                      |   4 -
 t/t9811-git-p4-label-import.sh             |   5 -
 t/t9812-git-p4-wildcards.sh                |   4 -
 t/t9813-git-p4-preserve-users.sh           |   4 -
 t/t9814-git-p4-rename.sh                   |   4 -
 t/t9815-git-p4-submit-fail.sh              |   4 -
 t/t9816-git-p4-locked.sh                   |   4 -
 t/t9817-git-p4-exclude.sh                  |   4 -
 t/t9818-git-p4-block.sh                    |   4 -
 t/t9819-git-p4-case-folding.sh             |   4 -
 t/t9820-git-p4-editor-handling.sh          |   4 -
 t/t9821-git-p4-path-variations.sh          |   4 -
 t/t9822-git-p4-path-encoding.sh            |   4 -
 t/t9823-git-p4-mock-lfs.sh                 |   4 -
 t/t9824-git-p4-git-lfs.sh                  |   4 -
 t/t9825-git-p4-handle-utf16-without-bom.sh |   4 -
 t/t9826-git-p4-keep-empty-commits.sh       |   4 -
 t/t9827-git-p4-change-filetype.sh          |   4 -
 t/t9828-git-p4-map-user.sh                 |   4 -
 t/t9829-git-p4-jobs.sh                     |   4 -
 t/t9830-git-p4-symlink-dir.sh              |   4 -
 t/t9831-git-p4-triggers.sh                 |   4 -
 t/t9832-unshelve.sh                        |   4 -
 t/t9833-errors.sh                          |   5 -
 t/test-lib-functions.sh                    |  29 ++
 t/test-lib.sh                              | 140 +++++++++
 54 files changed, 616 insertions(+), 174 deletions(-)
 create mode 100644 azure-pipelines.yml
 rename ci/{lib-travisci.sh => lib.sh} (61%)
 create mode 100755 ci/mount-fileshare.sh


base-commit: 5a0cc8aca797dbd7d2be3b67458ff880ed45cddf
Published-As: https://github.com/gitgitgadget/git/releases/tags/pr-31%2Fdscho%2Fvsts-ci-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-31/dscho/vsts-ci-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/31

Range-diff vs v1:

  1:  858b80bfcf !  1:  c963184510 ci: rename the library of common functions
     @@ -5,8 +5,8 @@
          The name is hard-coded to reflect that we use Travis CI for continuous
          testing.
      
     -    In the next commits, we will extend this to be able use Visual Studio
     -    Team Services, too.
     +    In the next commits, we will extend this to be able use Azure DevOps,
     +    too.
      
          So let's adjust the name to make it more generic.
      
  2:  18e6beec5f !  2:  815152e0f5 ci/lib.sh: encapsulate Travis-specific things
     @@ -2,8 +2,9 @@
      
          ci/lib.sh: encapsulate Travis-specific things
      
     -    The upcoming patches will allow building git.git via VSTS CI, where
     -    variable names and URLs look a bit different than in Travis CI.
     +    The upcoming patches will allow building git.git via Azure Pipelines
     +    (i.e. Azure DevOps' Continuous Integration), where variable names and
     +    URLs look a bit different than in Travis CI.
      
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
     @@ -16,7 +17,7 @@
       	# brew install gnu-time
      -	brew install git-lfs gettext
      +	test -z "$BREW_INSTALL_PACKAGES" ||
     -+	eval brew install $BREW_INSTALL_PACKAGES
     ++	brew install $BREW_INSTALL_PACKAGES
       	brew link --force gettext
       	brew install caskroom/cask/perforce
       	;;
     @@ -27,7 +28,7 @@
      @@
       # Library of functions shared by all CI scripts
       
     -+if test -n "$TRAVIS_COMMIT"
     ++if test true = "$TRAVIS"
      +then
      +	# We are running within Travis CI
      +	CI_BRANCH="$TRAVIS_BRANCH"
  3:  064db77669 =  3:  52337f1875 test-date: add a subcommand to measure times in shell scripts
  4:  2b5d678594 !  4:  cf4c5ae470 tests: optionally write results as JUnit-style .xml
     @@ -3,7 +3,7 @@
          tests: optionally write results as JUnit-style .xml
      
          This will come in handy when publishing the results of Git's test suite
     -    during an automated VSTS CI run.
     +    during an automated Azure DevOps run.
      
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
  5:  127dfcfb09 !  5:  486d1d2518 ci/lib.sh: add support for VSTS CI
     @@ -1,6 +1,6 @@
      Author: Johannes Schindelin <johannes.schindelin@gmx.de>
      
     -    ci/lib.sh: add support for VSTS CI
     +    ci/lib.sh: add support for Azure Pipelines
      
          This patch introduces a conditional arm that defines some environment
          variables and a function that displays the URL given the job id (to
     @@ -17,7 +17,7 @@
       	export GIT_TEST_OPTS="--verbose-log -x --immediate"
      +elif test -n "$SYSTEM_TASKDEFINITIONSURI"
      +then
     -+	# We are running in VSTS CI
     ++	# We are running in Azure Pipelines
      +	CI_BRANCH="$BUILD_SOURCEBRANCH"
      +	CI_COMMIT="$BUILD_SOURCEVERSION"
      +	CI_JOB_ID="$BUILD_BUILDID"
     @@ -29,7 +29,7 @@
      +
      +	# use a subdirectory of the cache dir (because the file share is shared
      +	# among *all* phases)
     -+	cache_dir="$HOME/vsts-cache/$SYSTEM_PHASENAME"
     ++	cache_dir="$HOME/test-cache/$SYSTEM_PHASENAME"
      +
      +	url_for_job_id () {
      +		echo "$SYSTEM_TASKDEFINITIONSURI$SYSTEM_TEAMPROJECT/_build/results?buildId=$1"
  6:  ab66060c57 !  6:  1a22efe849 Add a build definition for VSTS
     @@ -1,8 +1,8 @@
      Author: Johannes Schindelin <johannes.schindelin@gmx.de>
      
     -    Add a build definition for VSTS
     +    Add a build definition for Azure DevOps
      
     -    This commit adds a .vsts-ci.yml which is Visual Studio Team Services'
     +    This commit adds an azure-pipelines.yml file which is Azure DevOps'
          equivalent to Travis CI's .travis.yml.
      
          To make things a bit easier to understand, we refrain from using the
     @@ -19,10 +19,10 @@
      
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
     -diff --git a/.vsts-ci.yml b/.vsts-ci.yml
     +diff --git a/azure-pipelines.yml b/azure-pipelines.yml
      new file mode 100644
      --- /dev/null
     -+++ b/.vsts-ci.yml
     ++++ b/azure-pipelines.yml
      @@
      +resources:
      +- repo: self
     @@ -36,12 +36,12 @@
      +    name: Hosted Ubuntu 1604
      +  steps:
      +  - bash: |
     -+       ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/vsts-cache gitfileshare "$(gitfileshare.pwd)" "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
      +
     -+       sudo apt-get update
     -+       sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev apache2-bin
     ++       sudo apt-get update &&
     ++       sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev apache2-bin &&
      +
     -+       export CC=clang
     ++       export CC=clang || exit 1
      +
      +       ci/install-dependencies.sh
      +       ci/run-build-and-tests.sh || {
     @@ -49,8 +49,10 @@
      +           exit 1
      +       }
      +
     -+       sudo umount "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
      +    displayName: 'ci/run-build-and-tests.sh'
     ++    env:
     ++      GITFILESHAREPWD: $(gitfileshare.pwd)
      +  - task: PublishTestResults@2
      +    displayName: 'Publish Test Results **/TEST-*.xml'
      +    inputs:
     @@ -67,10 +69,10 @@
      +    name: Hosted Ubuntu 1604
      +  steps:
      +  - bash: |
     -+       ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/vsts-cache gitfileshare "$(gitfileshare.pwd)" "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
      +
     -+       sudo apt-get update
     -+       sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev apache2-bin
     ++       sudo apt-get update &&
     ++       sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev apache2-bin || exit 1
      +
      +       ci/install-dependencies.sh
      +       ci/run-build-and-tests.sh || {
     @@ -78,8 +80,10 @@
      +           exit 1
      +       }
      +
     -+       sudo umount "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
      +    displayName: 'ci/run-build-and-tests.sh'
     ++    env:
     ++      GITFILESHAREPWD: $(gitfileshare.pwd)
      +  - task: PublishTestResults@2
      +    displayName: 'Publish Test Results **/TEST-*.xml'
      +    inputs:
     @@ -96,7 +100,7 @@
      +    name: Hosted macOS
      +  steps:
      +  - bash: |
     -+       ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/vsts-cache gitfileshare "$(gitfileshare.pwd)" "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
      +
      +       export CC=clang
      +
     @@ -106,8 +110,10 @@
      +           exit 1
      +       }
      +
     -+       umount "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || umount "$HOME/test-cache" || exit 1
      +    displayName: 'ci/run-build-and-tests.sh'
     ++    env:
     ++      GITFILESHAREPWD: $(gitfileshare.pwd)
      +  - task: PublishTestResults@2
      +    displayName: 'Publish Test Results **/TEST-*.xml'
      +    inputs:
     @@ -124,7 +130,7 @@
      +    name: Hosted macOS
      +  steps:
      +  - bash: |
     -+       ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/vsts-cache gitfileshare "$(gitfileshare.pwd)" "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
      +
      +       ci/install-dependencies.sh
      +       ci/run-build-and-tests.sh || {
     @@ -132,8 +138,10 @@
      +           exit 1
      +       }
      +
     -+       umount "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || umount "$HOME/test-cache" || exit 1
      +    displayName: 'ci/run-build-and-tests.sh'
     ++    env:
     ++      GITFILESHAREPWD: $(gitfileshare.pwd)
      +  - task: PublishTestResults@2
      +    displayName: 'Publish Test Results **/TEST-*.xml'
      +    inputs:
     @@ -150,20 +158,22 @@
      +    name: Hosted Ubuntu 1604
      +  steps:
      +  - bash: |
     -+       ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/vsts-cache gitfileshare "$(gitfileshare.pwd)" "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
      +
     -+       sudo apt-get update
     -+       sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev
     ++       sudo apt-get update &&
     ++       sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev &&
      +
     -+       export jobname=GETTEXT_POISON
     ++       export jobname=GETTEXT_POISON || exit 1
      +
      +       ci/run-build-and-tests.sh || {
      +           ci/print-test-failures.sh
      +           exit 1
      +       }
      +
     -+       sudo umount "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
      +    displayName: 'ci/run-build-and-tests.sh'
     ++    env:
     ++      GITFILESHAREPWD: $(gitfileshare.pwd)
      +  - task: PublishTestResults@2
      +    displayName: 'Publish Test Results **/TEST-*.xml'
      +    inputs:
     @@ -184,8 +194,10 @@
      +       # Helper to check the error level of the latest command (exit with error when appropriate)
      +       function c() { if (!$?) { exit(1) } }
      +
     -+       net use s: \\gitfileshare.file.core.windows.net\vsts-cache "$(gitfileshare.pwd)" /user:AZURE\gitfileshare /persistent:no; c
     -+       cmd /c mklink /d "$(Build.SourcesDirectory)\vsts-cache" S:\; c
     ++       if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
     ++         net use s: \\gitfileshare.file.core.windows.net\test-cache "$GITFILESHAREPWD" /user:AZURE\gitfileshare /persistent:no; c
     ++         cmd /c mklink /d "$(Build.SourcesDirectory)\test-cache" S:\; c
     ++       }
      +
      +       # Add build agent's MinGit to PATH
      +       $env:PATH = $env:AGENT_HOMEDIRECTORY +"\externals\\git\cmd;" +$env:PATH
     @@ -215,7 +227,7 @@
      +
      +       # Initialize Git for Windows' SDK
      +       $sdk_path = "$(Build.SourcesDirectory)\git-sdk-64"
     -+       init "$sdk_path" "https://git-for-windows.visualstudio.com/_git/git-sdk-64" 0
     ++       init "$sdk_path" "https://dev.azure.com/git-for-windows/git-sdk-64/_git/git-sdk-64" 0
      +       init usr\src\build-extra https://github.com/git-for-windows/build-extra 1
      +
      +       cd "$(Build.SourcesDirectory)"; c
     @@ -227,14 +239,19 @@
      +
      +         make -j10 DEVELOPER=1 NO_PERL=1 || exit 1
      +         NO_PERL=1 NO_SVN_TESTS=1 GIT_TEST_OPTS=\"--quiet --write-junit-xml\" time make -j15 -k DEVELOPER=1 test || {
     -+           NO_PERL=1 NO_SVN_TESTS=1 GIT_TEST_OPTS=\"-i -v -x\" make -k failed; exit 1
     ++           NO_PERL=1 NO_SVN_TESTS=1 GIT_TEST_OPTS=\"-i -v -x\" make -k -C t failed; exit 1
      +         }
      +
      +         save_good_tree
      +       "@
     ++       c
      +
     -+       cmd /c rmdir "$(Build.SourcesDirectory)\vsts-cache"
     ++       if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
     ++         cmd /c rmdir "$(Build.SourcesDirectory)\test-cache"
     ++       }
      +    displayName: 'build & test'
     ++    env:
     ++      GITFILESHAREPWD: $(gitfileshare.pwd)
      +  - task: PublishTestResults@2
      +    displayName: 'Publish Test Results **/TEST-*.xml'
      +    inputs:
     @@ -251,28 +268,30 @@
      +    name: Hosted Ubuntu 1604
      +  steps:
      +  - bash: |
     -+       ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/vsts-cache gitfileshare "$(gitfileshare.pwd)" "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
      +
     -+       sudo apt-get update
     ++       sudo apt-get update &&
      +       sudo apt-get -y install \
      +           apt-transport-https \
      +           ca-certificates \
      +           curl \
     -+           software-properties-common
     -+       curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
     ++           software-properties-common &&
     ++       curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - &&
      +       sudo add-apt-repository \
      +          "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
      +          $(lsb_release -cs) \
     -+          stable"
     -+       sudo apt-get update
     -+       sudo apt-get -y install docker-ce
     ++          stable" &&
     ++       sudo apt-get update &&
     ++       sudo apt-get -y install docker-ce &&
      +
      +       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=-j3 bash -lxc ci/run-linux32-docker.sh || exit 1
      +
      +       sudo chmod a+r t/out/TEST-*.xml
      +
     -+       sudo umount "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
      +    displayName: 'ci/run-linux32-docker.sh'
     ++    env:
     ++      GITFILESHAREPWD: $(gitfileshare.pwd)
      +  - task: PublishTestResults@2
      +    displayName: 'Publish Test Results **/TEST-*.xml'
      +    inputs:
     @@ -289,17 +308,19 @@
      +    name: Hosted Ubuntu 1604
      +  steps:
      +  - bash: |
     -+       ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/vsts-cache gitfileshare "$(gitfileshare.pwd)" "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
      +
     -+       sudo apt-get update
     -+       sudo apt-get install -y coccinelle
     ++       sudo apt-get update &&
     ++       sudo apt-get install -y coccinelle &&
      +
     -+       export jobname=StaticAnalysis
     ++       export jobname=StaticAnalysis &&
      +
      +       ci/run-static-analysis.sh || exit 1
      +
     -+       sudo umount "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
      +    displayName: 'ci/run-static-analysis.sh'
     ++    env:
     ++      GITFILESHAREPWD: $(gitfileshare.pwd)
      +
      +- phase: documentation
      +  displayName: Documentation
     @@ -308,18 +329,20 @@
      +    name: Hosted Ubuntu 1604
      +  steps:
      +  - bash: |
     -+       ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/vsts-cache gitfileshare "$(gitfileshare.pwd)" "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
      +
     -+       sudo apt-get update
     -+       sudo apt-get install -y asciidoc xmlto asciidoctor
     ++       sudo apt-get update &&
     ++       sudo apt-get install -y asciidoc xmlto asciidoctor &&
      +
     -+       export ALREADY_HAVE_ASCIIDOCTOR=yes.
     -+       export jobname=Documentation
     ++       export ALREADY_HAVE_ASCIIDOCTOR=yes. &&
     ++       export jobname=Documentation &&
      +
      +       ci/test-documentation.sh || exit 1
      +
     -+       sudo umount "$HOME/vsts-cache" || exit 1
     ++       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
      +    displayName: 'ci/test-documentation.sh'
     ++    env:
     ++      GITFILESHAREPWD: $(gitfileshare.pwd)
      
      diff --git a/ci/mount-fileshare.sh b/ci/mount-fileshare.sh
      new file mode 100755
  -:  ---------- >  7:  12d6137f8d tests: introduce `test_atexit`
  -:  ---------- >  8:  3bb226b79b git-daemon: use `test_atexit` in the tests
  -:  ---------- >  9:  3e2193a73d git-p4: use `test_atexit` to kill the daemon
  7:  942bf423a4 ! 10:  ae3c42519a tests: include detailed trace logs with --write-junit-xml upon failure
     @@ -14,9 +14,9 @@
          almost all of those cases: only when a test fails do we have a way to
          include the trace.
      
     -    So let's do something different in VSTS: let's run all the tests with
     -    `--quiet` first, and only if a failure is encountered, try to trace the
     -    commands as they are executed.
     +    So let's do something different when using Azure DevOps: let's run all
     +    the tests with `--quiet` first, and only if a failure is encountered,
     +    try to trace the commands as they are executed.
      
          Of course, we cannot turn on `--verbose-log` after the fact. So let's
          just re-run the test with all the same options, adding `--verbose-log`.
     @@ -25,15 +25,10 @@
          Note: there is an off chance that re-running the test in verbose mode
          "fixes" the failures (and this does happen from time to time!). That is
          a possibility we should be able to live with. Ideally, we would label
     -    this as "Passed upon rerun", and that outcome even exists on VSTS, but
     -    it is not available when using the JUnit XML format for now:
     -    https://github.com/Microsoft/vsts-agent/blob/master/src/Agent.Worker/TestResults/JunitResultReader.cs
     -
     -    This patch contains a slightly inelegant workaround for the p4 and
     -    git-daemon tests: when we try to re-run the p4/git-daemon tests after
     -    the daemon has been started already, we need to kill said daemon. We do
     -    this by detecting the presence of the `kill_p4d` and `stop_git_daemon`
     -    shell functions and calling them if available.
     +    this as "Passed upon rerun", and Azure Pipelines even know about that
     +    outcome, but it is not available when using the JUnit XML format for
     +    now:
     +    https://github.com/Microsoft/azure-pipelines-agent/blob/master/src/Agent.Worker/TestResults/JunitResultReader.cs
      
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
      
     @@ -60,14 +55,8 @@
       	then
      +		if test -z "$GIT_TEST_TEE_OUTPUT_FILE"
      +		then
     -+			case "$(type kill_p4d 2>/dev/null | head -n 1)" in
     -+			*function*) kill_p4d;;
     -+			esac
     -+
     -+			case "$(type stop_git_daemon 2>/dev/null |
     -+				head -n 1)" in
     -+			*function*) stop_git_daemon;;
     -+			esac
     ++			# clean up
     ++			test_atexit_handler
      +
      +			# re-run with --verbose-log
      +			echo "# Re-running: $junit_rerun_options_sq" >&2
  8:  3e83c64090 = 11:  2466a48aa3 tests: record more stderr with --write-junit-xml in case of failure
  9:  dc1d890d71 ! 12:  d112b3fe86 README: add a build badge (status of the VSTS build)
     @@ -1,6 +1,6 @@
      Author: Johannes Schindelin <johannes.schindelin@gmx.de>
      
     -    README: add a build badge (status of the VSTS build)
     +    README: add a build badge (status of the Azure Pipelines build)
      
          Just like so many other OSS projects, we now also have a build badge.
      
     @@ -10,7 +10,7 @@
      --- a/README.md
      +++ b/README.md
      @@
     -+[![Build Status](https://git.visualstudio.com/git/_apis/build/status/test-git.git)](https://git.visualstudio.com/git/_build/latest?definitionId=2)
     ++[![Build Status](https:/dev.azure.com/git/git/_apis/build/status/test-git.git)](https://dev.azure.com/git/git/_build/latest?definitionId=2)
      +
       Git - fast, scalable, distributed revision control system
       =========================================================
  -:  ---------- > 13:  0a53f37135 travis: fix skipping tagged releases

-- 
gitgitgadget

  parent reply	other threads:[~2018-10-15 10:12 UTC|newest]

Thread overview: 225+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-03 21:10 [PATCH 0/9] Offer to run CI/PR builds in Visual Studio Team Services Johannes Schindelin via GitGitGadget
2018-09-03 21:10 ` [PATCH 1/9] ci: rename the library of common functions Johannes Schindelin via GitGitGadget
2018-09-03 21:10 ` [PATCH 2/9] ci/lib.sh: encapsulate Travis-specific things Johannes Schindelin via GitGitGadget
2018-09-03 23:43   ` Eric Sunshine
2018-09-04 11:04     ` Johannes Schindelin
2018-09-05 18:57   ` Sebastian Schuberth
2018-09-14 19:07     ` Johannes Schindelin
2018-09-03 21:10 ` [PATCH 3/9] test-date: add a subcommand to measure times in shell scripts Johannes Schindelin via GitGitGadget
2018-09-03 21:10 ` [PATCH 4/9] tests: optionally write results as JUnit-style .xml Johannes Schindelin via GitGitGadget
2018-09-04  0:43   ` Eric Sunshine
2018-09-04 10:59     ` Johannes Schindelin
2018-09-03 21:10 ` [PATCH 5/9] ci/lib.sh: add support for VSTS CI Johannes Schindelin via GitGitGadget
2018-09-03 21:10 ` [PATCH 6/9] Add a build definition for VSTS Johannes Schindelin via GitGitGadget
2018-09-03 21:10 ` [PATCH 7/9] tests: include detailed trace logs with --write-junit-xml upon failure Johannes Schindelin via GitGitGadget
2018-09-04  4:30   ` Eric Sunshine
2018-09-04 11:09     ` Johannes Schindelin
2018-09-05  5:32       ` Luke Diamand
2018-09-05 12:39         ` Johannes Schindelin
2018-09-05 13:03           ` Luke Diamand
2018-09-14 18:46             ` Johannes Schindelin
2018-09-05 18:38           ` Eric Sunshine
2018-09-05 20:24             ` Jeff King
2018-09-14 19:04               ` Johannes Schindelin
2018-09-14 18:51             ` Johannes Schindelin
2018-09-03 21:10 ` [PATCH 8/9] tests: record more stderr with --write-junit-xml in case of failure Johannes Schindelin via GitGitGadget
2018-09-03 21:10 ` [PATCH 9/9] README: add a build badge (status of the VSTS build) Johannes Schindelin via GitGitGadget
2018-09-05 19:01 ` [PATCH 0/9] Offer to run CI/PR builds in Visual Studio Team Services Sebastian Schuberth
2018-09-05 19:08   ` Stefan Beller
2018-10-15 10:11 ` Johannes Schindelin via GitGitGadget [this message]
2018-10-15 10:11   ` [PATCH v2 01/13] ci: rename the library of common functions Johannes Schindelin via GitGitGadget
2018-10-16  5:26     ` Junio C Hamano
2018-10-15 10:12   ` [PATCH v2 02/13] ci/lib.sh: encapsulate Travis-specific things Johannes Schindelin via GitGitGadget
2018-10-18 22:01     ` SZEDER Gábor
2018-10-19  2:06       ` Junio C Hamano
2018-10-19  8:25         ` SZEDER Gábor
2018-10-19  8:35           ` Junio C Hamano
2018-10-15 10:12   ` [PATCH v2 03/13] test-date: add a subcommand to measure times in shell scripts Johannes Schindelin via GitGitGadget
2018-10-15 10:12   ` [PATCH v2 04/13] tests: optionally write results as JUnit-style .xml Johannes Schindelin via GitGitGadget
2018-10-15 10:12   ` [PATCH v2 05/13] ci/lib.sh: add support for Azure Pipelines Johannes Schindelin via GitGitGadget
2018-10-16  9:43     ` SZEDER Gábor
2018-10-16 12:53       ` Johannes Schindelin
2018-10-15 10:12   ` [PATCH v2 06/13] Add a build definition for Azure DevOps Johannes Schindelin via GitGitGadget
2018-10-16  5:35     ` Junio C Hamano
2018-10-16  9:58       ` Johannes Schindelin
2018-10-16 19:12     ` SZEDER Gábor
2018-10-17 14:58       ` Johannes Schindelin
2018-10-15 10:12   ` [PATCH v2 07/13] tests: introduce `test_atexit` Johannes Schindelin via GitGitGadget
2018-10-21 11:20     ` SZEDER Gábor
2018-10-15 10:12   ` [PATCH v2 08/13] git-daemon: use `test_atexit` in the tests Johannes Schindelin via GitGitGadget
2018-10-15 10:12   ` [PATCH v2 09/13] git-p4: use `test_atexit` to kill the daemon Johannes Schindelin via GitGitGadget
2018-10-15 11:00     ` Luke Diamand
2018-10-15 15:02       ` Johannes Schindelin
2018-10-15 20:19         ` Luke Diamand
2018-10-16  9:39           ` Johannes Schindelin
2018-10-16  3:34     ` Eric Sunshine
2018-10-16  8:51       ` Johannes Schindelin
2018-10-17 23:29     ` SZEDER Gábor
2018-10-15 10:12   ` [PATCH v2 10/13] tests: include detailed trace logs with --write-junit-xml upon failure Johannes Schindelin via GitGitGadget
2018-10-16 10:04     ` SZEDER Gábor
2018-10-16 13:02       ` Johannes Schindelin
2018-10-16 16:03         ` SZEDER Gábor
2018-10-16 20:53           ` Johannes Schindelin
2018-10-15 10:12   ` [PATCH v2 11/13] tests: record more stderr with --write-junit-xml in case of failure Johannes Schindelin via GitGitGadget
2018-10-15 10:12   ` [PATCH v2 12/13] README: add a build badge (status of the Azure Pipelines build) Johannes Schindelin via GitGitGadget
2018-10-16  3:44     ` Eric Sunshine
2018-10-16  8:48       ` Johannes Schindelin
2018-10-15 10:12   ` [PATCH v2 13/13] travis: fix skipping tagged releases Johannes Schindelin via GitGitGadget
2018-10-16  9:40     ` SZEDER Gábor
2018-10-16 12:45       ` Johannes Schindelin
2018-10-15 14:22   ` [PATCH v2 00/13] Offer to run CI/PR builds in Azure Pipelines Taylor Blau
2018-10-15 14:55     ` Johannes Schindelin
2018-10-16  2:53       ` Taylor Blau
2018-10-16 11:55         ` Ævar Arnfjörð Bjarmason
2018-10-16 10:30     ` SZEDER Gábor
2018-10-25  8:17   ` Junio C Hamano
2018-10-26  8:37     ` Johannes Schindelin
2019-01-16 14:04     ` Johannes Schindelin
2019-01-17 20:59       ` Junio C Hamano
2019-01-18 11:49         ` Johannes Schindelin
2019-01-16 13:36   ` [PATCH v3 00/21] " Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 01/21] travis: fix skipping tagged releases Johannes Schindelin via GitGitGadget
2019-01-17 20:55       ` Junio C Hamano
2019-01-18 10:05         ` Johannes Schindelin
2019-01-16 13:36     ` [PATCH v3 02/21] ci: rename the library of common functions Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 03/21] ci/lib.sh: encapsulate Travis-specific things Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 04/21] ci: inherit --jobs via MAKEFLAGS in run-build-and-tests Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 05/21] ci: use a junction on Windows instead of a symlink Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 06/21] test-date: add a subcommand to measure times in shell scripts Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 07/21] tests: optionally write results as JUnit-style .xml Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 08/21] ci/lib.sh: add support for Azure Pipelines Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 09/21] Add a build definition for Azure DevOps Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 10/21] ci: move the Windows job to the top Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 11/21] ci: use git-sdk-64-minimal build artifact Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 12/21] mingw: be more generous when wrapping up the setitimer() emulation Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 13/21] README: add a build badge (status of the Azure Pipelines build) Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 14/21] tests: avoid calling Perl just to determine file sizes Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 15/21] tests: include detailed trace logs with --write-junit-xml upon failure Johannes Schindelin via GitGitGadget
2019-01-17 10:18       ` Johannes Schindelin
2019-01-16 13:36     ` [PATCH v3 16/21] mingw: try to work around issues with the test cleanup Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 17/21] tests: add t/helper/ to the PATH with --with-dashes Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 18/21] t0061: fix with --with-dashes and RUNTIME_PREFIX Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 20/21] ci: speed up Windows phase Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 19/21] tests: optionally skip bin-wrappers/ Johannes Schindelin via GitGitGadget
2019-01-16 13:36     ` [PATCH v3 21/21] ci: parallelize testing on Windows Johannes Schindelin via GitGitGadget
2019-01-23 14:40     ` [PATCH v4 00/21] Offer to run CI/PR builds in Azure Pipelines Johannes Schindelin via GitGitGadget
2019-01-23 14:40       ` [PATCH v4 01/21] travis: fix skipping tagged releases Johannes Schindelin via GitGitGadget
2019-01-23 22:00         ` Junio C Hamano
2019-01-23 14:40       ` [PATCH v4 02/21] ci: rename the library of common functions Johannes Schindelin via GitGitGadget
2019-01-23 22:01         ` Junio C Hamano
2019-01-23 14:40       ` [PATCH v4 03/21] ci/lib.sh: encapsulate Travis-specific things Johannes Schindelin via GitGitGadget
2019-01-23 22:19         ` Junio C Hamano
2019-01-26 18:37           ` Johannes Schindelin
2019-01-27 23:20             ` Junio C Hamano
2019-01-28 23:01               ` Johannes Schindelin
2019-01-28 23:05                 ` Junio C Hamano
2019-01-29  9:54                   ` Johannes Schindelin
2019-01-25 13:51         ` SZEDER Gábor
2019-01-27 21:22           ` Johannes Schindelin
2019-01-23 14:40       ` [PATCH v4 04/21] ci: inherit --jobs via MAKEFLAGS in run-build-and-tests Johannes Schindelin via GitGitGadget
2019-01-23 22:22         ` Junio C Hamano
2019-01-25 13:25           ` SZEDER Gábor
2019-01-28 16:02             ` Johannes Schindelin
2019-01-26 18:48           ` Johannes Schindelin
2019-01-23 14:40       ` [PATCH v4 05/21] ci: use a junction on Windows instead of a symlink Johannes Schindelin via GitGitGadget
2019-01-23 14:40       ` [PATCH v4 06/21] test-date: add a subcommand to measure times in shell scripts Johannes Schindelin via GitGitGadget
2019-01-23 22:29         ` Junio C Hamano
2019-01-27 14:54           ` Johannes Schindelin
2019-01-27 23:14           ` Junio C Hamano
2019-01-28 18:49             ` Junio C Hamano
2019-01-23 14:40       ` [PATCH v4 07/21] tests: optionally write results as JUnit-style .xml Johannes Schindelin via GitGitGadget
2019-01-23 14:40       ` [PATCH v4 09/21] Add a build definition for Azure DevOps Johannes Schindelin via GitGitGadget
2019-01-23 22:44         ` Junio C Hamano
2019-01-27 18:30           ` Johannes Schindelin
2019-01-23 14:40       ` [PATCH v4 08/21] ci/lib.sh: add support for Azure Pipelines Johannes Schindelin via GitGitGadget
2019-01-23 22:40         ` Junio C Hamano
2019-01-27 18:26           ` Johannes Schindelin
2019-01-23 14:40       ` [PATCH v4 10/21] ci: move the Windows job to the top Johannes Schindelin via GitGitGadget
2019-01-23 22:59         ` Junio C Hamano
2019-01-27 18:22           ` Johannes Schindelin
2019-01-23 23:07         ` Junio C Hamano
2019-01-27 19:05           ` Johannes Schindelin
2019-01-23 14:40       ` [PATCH v4 11/21] ci: use git-sdk-64-minimal build artifact Johannes Schindelin via GitGitGadget
2019-01-23 14:40       ` [PATCH v4 12/21] mingw: be more generous when wrapping up the setitimer() emulation Johannes Schindelin via GitGitGadget
2019-01-23 14:40       ` [PATCH v4 13/21] README: add a build badge (status of the Azure Pipelines build) Johannes Schindelin via GitGitGadget
2019-01-23 14:40       ` [PATCH v4 14/21] tests: avoid calling Perl just to determine file sizes Johannes Schindelin via GitGitGadget
2019-01-23 14:40       ` [PATCH v4 15/21] tests: include detailed trace logs with --write-junit-xml upon failure Johannes Schindelin via GitGitGadget
2019-01-23 14:40       ` [PATCH v4 16/21] mingw: try to work around issues with the test cleanup Johannes Schindelin via GitGitGadget
2019-01-23 14:40       ` [PATCH v4 17/21] tests: add t/helper/ to the PATH with --with-dashes Johannes Schindelin via GitGitGadget
2019-01-23 23:33         ` Junio C Hamano
2019-01-27 18:40           ` Johannes Schindelin
2019-01-23 14:40       ` [PATCH v4 18/21] t0061: fix with --with-dashes and RUNTIME_PREFIX Johannes Schindelin via GitGitGadget
2019-01-28  2:09         ` Junio C Hamano
2019-01-28 22:44           ` Johannes Schindelin
2019-01-28 23:00             ` Junio C Hamano
2019-01-29  9:55               ` Johannes Schindelin
2019-01-23 14:40       ` [PATCH v4 19/21] tests: optionally skip bin-wrappers/ Johannes Schindelin via GitGitGadget
2019-01-23 14:40       ` [PATCH v4 20/21] ci: speed up Windows phase Johannes Schindelin via GitGitGadget
2019-01-23 23:35         ` Junio C Hamano
2019-01-23 14:40       ` [PATCH v4 21/21] ci: parallelize testing on Windows Johannes Schindelin via GitGitGadget
2019-01-23 16:23       ` Fast CI for all branches in gitster/git, was Re: [PATCH v4 00/21] Offer to run CI/PR builds in Azure Pipelines Johannes Schindelin
2019-01-23 23:39       ` Junio C Hamano
2019-01-27 23:26       ` [PATCH v5 " Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 01/21] travis: fix skipping tagged releases Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 02/21] ci: rename the library of common functions Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 03/21] ci/lib.sh: encapsulate Travis-specific things Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 04/21] ci: inherit --jobs via MAKEFLAGS in run-build-and-tests Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 05/21] ci: use a junction on Windows instead of a symlink Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 06/21] test-date: add a subcommand to measure times in shell scripts Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 07/21] tests: optionally write results as JUnit-style .xml Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 08/21] ci/lib.sh: add support for Azure Pipelines Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 09/21] Add a build definition for Azure DevOps Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 10/21] ci: add a Windows job to the Azure Pipelines definition Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 11/21] ci: use git-sdk-64-minimal build artifact Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 12/21] mingw: be more generous when wrapping up the setitimer() emulation Johannes Schindelin via GitGitGadget
2019-01-27 23:26         ` [PATCH v5 13/21] README: add a build badge (status of the Azure Pipelines build) Johannes Schindelin via GitGitGadget
2019-01-27 23:27         ` [PATCH v5 14/21] tests: avoid calling Perl just to determine file sizes Johannes Schindelin via GitGitGadget
2019-01-27 23:27         ` [PATCH v5 15/21] tests: include detailed trace logs with --write-junit-xml upon failure Johannes Schindelin via GitGitGadget
2019-01-27 23:27         ` [PATCH v5 16/21] mingw: try to work around issues with the test cleanup Johannes Schindelin via GitGitGadget
2019-01-27 23:27         ` [PATCH v5 17/21] tests: add t/helper/ to the PATH with --with-dashes Johannes Schindelin via GitGitGadget
2019-01-27 23:27         ` [PATCH v5 18/21] t0061: fix with --with-dashes and RUNTIME_PREFIX Johannes Schindelin via GitGitGadget
2019-01-27 23:27         ` [PATCH v5 19/21] tests: optionally skip bin-wrappers/ Johannes Schindelin via GitGitGadget
2019-01-27 23:27         ` [PATCH v5 20/21] ci: speed up Windows phase Johannes Schindelin via GitGitGadget
2019-01-27 23:27         ` [PATCH v5 21/21] ci: parallelize testing on Windows Johannes Schindelin via GitGitGadget
2019-01-29 14:19         ` [PATCH v6 00/21] Offer to run CI/PR builds in Azure Pipelines Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 01/21] travis: fix skipping tagged releases Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 02/21] ci: rename the library of common functions Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 03/21] ci/lib.sh: encapsulate Travis-specific things Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 04/21] ci: inherit --jobs via MAKEFLAGS in run-build-and-tests Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 05/21] ci: use a junction on Windows instead of a symlink Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 07/21] tests: optionally write results as JUnit-style .xml Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 06/21] test-date: add a subcommand to measure times in shell scripts Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 08/21] ci/lib.sh: add support for Azure Pipelines Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 09/21] Add a build definition for Azure DevOps Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 10/21] ci: add a Windows job to the Azure Pipelines definition Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 11/21] ci: use git-sdk-64-minimal build artifact Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 12/21] mingw: be more generous when wrapping up the setitimer() emulation Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 13/21] README: add a build badge (status of the Azure Pipelines build) Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 14/21] tests: avoid calling Perl just to determine file sizes Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 15/21] tests: include detailed trace logs with --write-junit-xml upon failure Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 16/21] mingw: try to work around issues with the test cleanup Johannes Schindelin via GitGitGadget
2021-03-10 12:40             ` Ævar Arnfjörð Bjarmason
2021-03-19 14:20               ` Johannes Schindelin
2021-03-20 18:12                 ` Ævar Arnfjörð Bjarmason
2021-03-20 20:10                   ` Junio C Hamano
2021-03-24 12:01                   ` Johannes Schindelin
2021-03-24 21:20                     ` SZEDER Gábor
2021-03-24 22:57                       ` Ævar Arnfjörð Bjarmason
2021-03-26 19:54                         ` SZEDER Gábor
2019-01-29 14:19           ` [PATCH v6 17/21] tests: add t/helper/ to the PATH with --with-dashes Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 18/21] t0061: workaround issues with --with-dashes and RUNTIME_PREFIX Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 19/21] tests: optionally skip bin-wrappers/ Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 20/21] ci: speed up Windows phase Johannes Schindelin via GitGitGadget
2019-01-29 14:19           ` [PATCH v6 21/21] ci: parallelize testing on Windows Johannes Schindelin via GitGitGadget
2018-10-15 15:06 ` [PATCH 0/9] Offer to run CI/PR builds in Visual Studio Team Services Ævar Arnfjörð Bjarmason
2018-10-15 15:42   ` Duy Nguyen
2018-10-15 16:17     ` Christian Couder
2018-10-15 18:33       ` Johannes Schindelin
2018-10-16  0:24         ` Christian Couder
2018-10-16  4:50         ` Junio C Hamano
2018-10-16  9:14           ` Ævar Arnfjörð Bjarmason
2018-10-18  2:03             ` Junio C Hamano
2018-10-19 10:40               ` Mirror of git.git on gitlab.com Ævar Arnfjörð Bjarmason
2018-10-22  5:41                 ` Junio C Hamano
2018-10-25  8:37                   ` Jeff King
2018-10-16  4:47   ` [PATCH 0/9] Offer to run CI/PR builds in Visual Studio Team Services Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=pull.31.v2.git.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).