new file mode 100644
@@ -0,0 +1,306 @@
+resources:
+- repo: self
+ fetchDepth: 1
+
+jobs:
+- job: linux_clang
+ displayName: linux-clang
+ condition: succeeded()
+ pool: 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 || 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: 'linux-clang'
+ platform: Linux
+ publishRunAttachments: false
+ condition: succeededOrFailed()
+
+- job: linux_gcc
+ displayName: linux-gcc
+ condition: succeeded()
+ pool: 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 add-apt-repository ppa:ubuntu-toolchain-r/test &&
+ 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 language-pack-is git-svn gcc-8 || exit 1
+
+ ci/install-dependencies.sh || 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: 'linux-gcc'
+ platform: Linux
+ publishRunAttachments: false
+ condition: succeededOrFailed()
+
+- job: osx_clang
+ displayName: osx-clang
+ condition: succeeded()
+ pool: 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 || exit 1
+ 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()
+
+- job: osx_gcc
+ displayName: osx-gcc
+ condition: succeeded()
+ pool: 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 || exit 1
+ 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()
+
+- job: gettext_poison
+ displayName: GETTEXT_POISON
+ condition: succeeded()
+ pool: 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 &&
+
+ 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()
+
+- job: windows
+ displayName: Windows
+ condition: succeeded()
+ pool: Hosted
+ timeoutInMinutes: 240
+ steps:
+ - powershell: |
+ if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
+ net use s: \\gitfileshare.file.core.windows.net\test-cache "$GITFILESHAREPWD" /user:AZURE\gitfileshare /persistent:no
+ cmd /c mklink /d "$(Build.SourcesDirectory)\test-cache" S:\
+ }
+ displayName: 'Mount test-cache'
+ env:
+ GITFILESHAREPWD: $(gitfileshare.pwd)
+ - powershell: |
+ # Helper to check the error level of the latest command (exit with error when appropriate)
+ function c() { if (!$?) { exit(1) } }
+
+ # 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
+
+ # Let Git ignore the SDK and the test-cache
+ "/git-sdk-64/`n/test-cache/`n" | Out-File -NoNewLine -Encoding ascii -Append "$(Build.SourcesDirectory)\.git\info\exclude"
+ displayName: 'Initialize the Git for Windows SDK'
+ - powershell: |
+ & "git-sdk-64\git-cmd.exe" --command=usr\\bin\\bash.exe -lc @"
+ export MAKEFLAGS=-j10
+ export DEVELOPER=1
+ export NO_PERL=1
+ export NO_SVN_TESTS=1
+ export GIT_TEST_SKIP_REBASE_P=1
+
+ ci/run-build-and-tests.sh || {
+ ci/print-test-failures.sh
+ exit 1
+ }
+ "@
+ if (!$?) { exit(1) }
+ displayName: 'Build & Test'
+ env:
+ HOME: $(Build.SourcesDirectory)
+ MSYSTEM: MINGW64
+ - powershell: |
+ if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
+ cmd /c rmdir "$(Build.SourcesDirectory)\test-cache"
+ }
+ displayName: 'Unmount test-cache'
+ condition: true
+ env:
+ GITFILESHAREPWD: $(gitfileshare.pwd)
+ - task: PublishTestResults@2
+ displayName: 'Publish Test Results **/TEST-*.xml'
+ inputs:
+ mergeTestResults: true
+ testRunTitle: 'windows'
+ platform: Windows
+ publishRunAttachments: false
+ condition: succeededOrFailed()
+
+- job: linux32
+ displayName: Linux32
+ condition: succeeded()
+ pool: 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 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()
+
+- job: static_analysis
+ displayName: StaticAnalysis
+ condition: succeeded()
+ pool: 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 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)
+
+- job: documentation
+ displayName: Documentation
+ condition: succeeded()
+ pool: 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 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)
@@ -42,7 +42,7 @@ then
BREW_INSTALL_PACKAGES=
export GIT_PROVE_OPTS="--timer --jobs 10 --state=failed,slow,save"
- export GIT_TEST_OPTS="--quiet --write-junit-xml"
+ export GIT_TEST_OPTS="--verbose-log -x --write-junit-xml"
fi
skip_branch_tip_with_tag () {
new file mode 100755
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+die () {
+ echo "$*" >&2
+ exit 1
+}
+
+test $# = 4 ||
+die "Usage: $0 <share> <username> <password> <mountpoint>"
+
+mkdir -p "$4" || die "Could not create $4"
+
+case "$(uname -s)" in
+Linux)
+ sudo mount -t cifs -o vers=3.0,username="$2",password="$3",dir_mode=0777,file_mode=0777,serverino "$1" "$4"
+ ;;
+Darwin)
+ pass="$(echo "$3" | sed -e 's/\//%2F/g' -e 's/+/%2B/g')" &&
+ mount -t smbfs,soft "smb://$2:$pass@${1#//}" "$4"
+ ;;
+*)
+ die "No support for $(uname -s)"
+ ;;
+esac ||
+die "Could not mount $4"