You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
387 lines
14 KiB
387 lines
14 KiB
resources: |
|
- repo: self |
|
fetchDepth: 1 |
|
|
|
jobs: |
|
- job: windows_build |
|
displayName: Windows Build |
|
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: | |
|
$urlbase = "https://dev.azure.com/git-for-windows/git/_apis/build/builds" |
|
$id = ((Invoke-WebRequest -UseBasicParsing "${urlbase}?definitions=22&statusFilter=completed&resultFilter=succeeded&`$top=1").content | ConvertFrom-JSON).value[0].id |
|
$downloadUrl = ((Invoke-WebRequest -UseBasicParsing "${urlbase}/$id/artifacts").content | ConvertFrom-JSON).value[1].resource.downloadUrl |
|
(New-Object Net.WebClient).DownloadFile($downloadUrl,"git-sdk-64-minimal.zip") |
|
Expand-Archive git-sdk-64-minimal.zip -DestinationPath . -Force |
|
Remove-Item git-sdk-64-minimal.zip |
|
|
|
# Let Git ignore the SDK and the test-cache |
|
"/git-sdk-64-minimal/`n/test-cache/`n" | Out-File -NoNewLine -Encoding ascii -Append "$(Build.SourcesDirectory)\.git\info\exclude" |
|
displayName: 'Download git-sdk-64-minimal' |
|
- powershell: | |
|
& git-sdk-64-minimal\usr\bin\bash.exe -lc @" |
|
ci/make-test-artifacts.sh artifacts |
|
"@ |
|
if (!$?) { exit(1) } |
|
displayName: Build |
|
env: |
|
HOME: $(Build.SourcesDirectory) |
|
MSYSTEM: MINGW64 |
|
DEVELOPER: 1 |
|
NO_PERL: 1 |
|
- task: PublishPipelineArtifact@0 |
|
displayName: 'Publish Pipeline Artifact: test artifacts' |
|
inputs: |
|
artifactName: 'windows-artifacts' |
|
targetPath: '$(Build.SourcesDirectory)\artifacts' |
|
- task: PublishPipelineArtifact@0 |
|
displayName: 'Publish Pipeline Artifact: git-sdk-64-minimal' |
|
inputs: |
|
artifactName: 'git-sdk-64-minimal' |
|
targetPath: '$(Build.SourcesDirectory)\git-sdk-64-minimal' |
|
- 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) |
|
|
|
- job: windows_test |
|
displayName: Windows Test |
|
dependsOn: windows_build |
|
condition: succeeded() |
|
pool: Hosted |
|
timeoutInMinutes: 240 |
|
strategy: |
|
parallel: 10 |
|
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) |
|
- task: DownloadPipelineArtifact@0 |
|
displayName: 'Download Pipeline Artifact: test artifacts' |
|
inputs: |
|
artifactName: 'windows-artifacts' |
|
targetPath: '$(Build.SourcesDirectory)' |
|
- task: DownloadPipelineArtifact@0 |
|
displayName: 'Download Pipeline Artifact: git-sdk-64-minimal' |
|
inputs: |
|
artifactName: 'git-sdk-64-minimal' |
|
targetPath: '$(Build.SourcesDirectory)\git-sdk-64-minimal' |
|
- powershell: | |
|
& git-sdk-64-minimal\usr\bin\bash.exe -lc @" |
|
test -f artifacts.tar.gz || { |
|
echo No test artifacts found\; skipping >&2 |
|
exit 0 |
|
} |
|
tar xf artifacts.tar.gz || exit 1 |
|
|
|
# Let Git ignore the SDK and the test-cache |
|
printf '%s\n' /git-sdk-64-minimal/ /test-cache/ >>.git/info/exclude |
|
|
|
ci/run-test-slice.sh `$SYSTEM_JOBPOSITIONINPHASE `$SYSTEM_TOTALJOBSINPHASE || { |
|
ci/print-test-failures.sh |
|
exit 1 |
|
} |
|
"@ |
|
if (!$?) { exit(1) } |
|
displayName: 'Test (parallel)' |
|
env: |
|
HOME: $(Build.SourcesDirectory) |
|
MSYSTEM: MINGW64 |
|
NO_SVN_TESTS: 1 |
|
GIT_TEST_SKIP_REBASE_P: 1 |
|
- 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() |
|
- task: PublishBuildArtifacts@1 |
|
displayName: 'Publish trash directories of failed tests' |
|
condition: failed() |
|
inputs: |
|
PathtoPublish: t/failed-test-artifacts |
|
ArtifactName: failed-test-artifacts |
|
|
|
- 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() |
|
- task: PublishBuildArtifacts@1 |
|
displayName: 'Publish trash directories of failed tests' |
|
condition: failed() |
|
inputs: |
|
PathtoPublish: t/failed-test-artifacts |
|
ArtifactName: failed-test-artifacts |
|
|
|
- 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() |
|
- task: PublishBuildArtifacts@1 |
|
displayName: 'Publish trash directories of failed tests' |
|
condition: failed() |
|
inputs: |
|
PathtoPublish: t/failed-test-artifacts |
|
ArtifactName: failed-test-artifacts |
|
|
|
- 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() |
|
- task: PublishBuildArtifacts@1 |
|
displayName: 'Publish trash directories of failed tests' |
|
condition: failed() |
|
inputs: |
|
PathtoPublish: t/failed-test-artifacts |
|
ArtifactName: failed-test-artifacts |
|
|
|
- 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() |
|
- task: PublishBuildArtifacts@1 |
|
displayName: 'Publish trash directories of failed tests' |
|
condition: failed() |
|
inputs: |
|
PathtoPublish: t/failed-test-artifacts |
|
ArtifactName: failed-test-artifacts |
|
|
|
- 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() |
|
- task: PublishBuildArtifacts@1 |
|
displayName: 'Publish trash directories of failed tests' |
|
condition: failed() |
|
inputs: |
|
PathtoPublish: t/failed-test-artifacts |
|
ArtifactName: failed-test-artifacts |
|
|
|
- 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 |
|
|
|
res=0 |
|
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="$MAKEFLAGS" bash -lxc ci/run-linux32-docker.sh || res=1 |
|
|
|
sudo chmod a+r t/out/TEST-*.xml |
|
test ! -d t/failed-test-artifacts || sudo chmod a+r t/failed-test-artifacts |
|
|
|
test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || res=1 |
|
exit $res |
|
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() |
|
- task: PublishBuildArtifacts@1 |
|
displayName: 'Publish trash directories of failed tests' |
|
condition: failed() |
|
inputs: |
|
PathtoPublish: t/failed-test-artifacts |
|
ArtifactName: failed-test-artifacts |
|
|
|
- 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)
|
|
|