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 rm /var/lib/apt/lists/lock && 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 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 rm /var/lib/apt/lists/lock && 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 || { 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 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() - phase: gettext_poison displayName: GETTEXT_POISON 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 rm /var/lib/apt/lists/lock && 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 || exit 1 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: 'gettext-poison' platform: Linux publishRunAttachments: false condition: succeededOrFailed() - phase: windows displayName: Windows condition: succeeded() queue: name: Hosted timeoutInMinutes: 240 steps: - powershell: | # Helper to check the error level of the latest command (exit with error when appropriate) function c() { if (!$?) { exit(1) } } 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 # Helper to initialize (or update) a Git worktree function init ($path, $url, $set_origin) { if (Test-Path $path) { cd $path; c if (Test-Path .git) { git init; c } else { git status } } else { git init $path; c cd $path; c } git config core.autocrlf false; c git config core.untrackedCache true; c if (($set_origin -ne 0) -and !(git config remote.origin.url)) { git remote add origin $url; c } git fetch --depth=1 $url master; c git reset --hard FETCH_HEAD; c git clean -df; c } # Initialize Git for Windows' SDK $sdk_path = "$(Build.SourcesDirectory)\git-sdk-64" 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 $env:HOME = "$(Build.SourcesDirectory)" $env:MSYSTEM = "MINGW64" git-sdk-64\git-cmd --command=usr\\bin\\bash.exe -lc @" . ci/lib.sh make -j10 DEVELOPER=1 NO_PERL=1 || exit 1 NO_PERL=1 NO_SVN_TESTS=1 GIT_TEST_OPTS=\"--no-chain-lint --no-bin-wrappers --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 -C t failed; exit 1 } save_good_tree "@ c 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: mergeTestResults: true testRunTitle: 'windows' platform: Windows publishRunAttachments: false condition: succeededOrFailed() - phase: linux32 displayName: Linux32 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 rm /var/lib/apt/lists/lock && 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 - && 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 && 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 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: mergeTestResults: true testRunTitle: 'linux32' platform: Linux publishRunAttachments: false condition: succeededOrFailed() - phase: static_analysis displayName: StaticAnalysis 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 rm /var/lib/apt/lists/lock && sudo apt-get install -y coccinelle && export jobname=StaticAnalysis && ci/run-static-analysis.sh || 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 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 rm /var/lib/apt/lists/lock && sudo apt-get install -y asciidoc xmlto asciidoctor && export ALREADY_HAVE_ASCIIDOCTOR=yes. && export jobname=Documentation && ci/test-documentation.sh || exit 1 test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1 displayName: 'ci/test-documentation.sh' env: GITFILESHAREPWD: $(gitfileshare.pwd)