Re: [PATCH v2 06/13] Add a build definition for Azure DevOps
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Oct 17, 2018, 14:58 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1810171512100.4546@tvgsbejvaqbjf.bet>
- In-Reply-To
- <20181016191250.GO19800@szeder.dev>
Hi Gábor,
On Tue, 16 Oct 2018, SZEDER Gábor wrote:
Show 30 quoted lines
> 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.
Show 34 quoted lines
> > + 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)
Show 67 quoted lines
> > + 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/#uWill do.
Thanks, Dscho
Show 21 quoted lines
>
> > + 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()
> > +
>