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/[email protected]/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()
> > +
>