Hi Gábor, On Tue, 16 Oct 2018, SZEDER Gábor wrote: > On Mon, Oct 15, 2018 at 03:12:06AM -0700, Johannes Schindelin via GitGitGadget wrote: > > diff --git a/azure-pipelines.yml b/azure-pipelines.yml > > new file mode 100644 > > index 0000000000..b5749121d2 > > --- /dev/null > > +++ b/azure-pipelines.yml > > @@ -0,0 +1,319 @@ > > +resources: > > +- repo: self > > + fetchDepth: 1 > > + > > +phases: > > +- phase: linux_clang > > + displayName: linux-clang > > + condition: succeeded() > > + queue: > > + name: Hosted Ubuntu 1604 > > + steps: > > + - bash: | > > + 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 && > > + > > + export CC=clang || exit 1 > > + > > + ci/install-dependencies.sh > > I think you would want to 'exit 1' when this script fails. > This applies to other build jobs (erm, phases?) below as well. True. FWIW the nomenclature is "build" or "job" or "build job" for the entire run, from what I understand. The "phase" is the individual chunk that is run in an individual agent, i.e. you can have a single job running test on different OSes in separate phases. > > + ci/run-build-and-tests.sh || { > > + ci/print-test-failures.sh > > + 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: > > + mergeTestResults: true > > + testRunTitle: 'linux-clang' > > + platform: Linux > > + publishRunAttachments: false > > + condition: succeededOrFailed() > > + > > +- phase: linux_gcc > > + displayName: linux-gcc > > + condition: succeeded() > > + queue: > > + name: Hosted Ubuntu 1604 > > + steps: > > + - bash: | > > + 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 || exit 1 > > + > > On Travis CI the Linux GCC build job uses gcc-8 instead of whatever > the default is in that old-ish Ubuntu LTS; see 37fa4b3c78 (travis-ci: > run gcc-8 on linux-gcc jobs, 2018-05-19). I'll add those dependencies explicitly. It does seem, however, from a cursory look at the log, that gcc-8 should not even be picked up, as it is set via the environment variable `CC` (which, as you point out in below-referenced thread, is not respected): [...] 2018-10-16T10:00:36.0177072Z ++ '[' linux-gcc = linux-gcc ']' 2018-10-16T10:00:36.0177380Z ++ export CC=gcc-8 2018-10-16T10:00:36.0177630Z ++ CC=gcc-8 2018-10-16T10:00:36.0177917Z ++ case "$jobname" [...] (see https://dev.azure.com/git/git/_build/results?buildId=192&view=logs) > > + ci/install-dependencies.sh > > + ci/run-build-and-tests.sh || { > > + ci/print-test-failures.sh > > + 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: > > + mergeTestResults: true > > + testRunTitle: 'linux-gcc' > > + platform: Linux > > + publishRunAttachments: false > > + condition: succeededOrFailed() > > + > > +- phase: osx_clang > > + displayName: osx-clang > > + condition: succeeded() > > + queue: > > + name: Hosted macOS > > + steps: > > + - bash: | > > + 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 > > + > > + ci/install-dependencies.sh > > + ci/run-build-and-tests.sh || { > > + ci/print-test-failures.sh > > + 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: > > + mergeTestResults: true > > + testRunTitle: 'osx-clang' > > + platform: macOS > > + publishRunAttachments: false > > + condition: succeededOrFailed() > > + > > +- phase: osx_gcc > > + displayName: osx-gcc > > + condition: succeeded() > > + queue: > > + name: Hosted macOS > > + steps: > > + - bash: | > > + test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1 > > + > > Here you should 'export CC=gcc', because on macOS 'cc' is 'clang' by > default. > > Note, however, that setting 'CC' in the environment alone has no > effect on the build process, it will still use 'cc'. Keep an eye on > where this thread will lead to: > > https://public-inbox.org/git/20181016184537.GN19800@szeder.dev/T/#u Will do. Thanks, Dscho > > > + ci/install-dependencies.sh > > + ci/run-build-and-tests.sh || { > > + ci/print-test-failures.sh > > + 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: > > + mergeTestResults: true > > + testRunTitle: 'osx-gcc' > > + platform: macOS > > + publishRunAttachments: false > > + condition: succeededOrFailed() > > + >