forked from git/git
-
Notifications
You must be signed in to change notification settings - Fork 157
Offer to run CI/PR builds in Azure Pipelines #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from 16 commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
f553fd4
travis: fix skipping tagged releases
dscho f0852de
ci: rename the library of common functions
dscho 7c16d31
ci/lib.sh: encapsulate Travis-specific things
dscho bf72fb1
ci: inherit --jobs via MAKEFLAGS in run-build-and-tests
dscho 681f8e6
ci: use a junction on Windows instead of a symlink
dscho ccf8bf5
test-date: add a subcommand to measure times in shell scripts
dscho e9a869d
tests: optionally write results as JUnit-style .xml
dscho 4c78085
ci/lib.sh: add support for Azure Pipelines
dscho d34812b
Add a build definition for Azure DevOps
dscho d565131
ci: add a Windows job to the Azure Pipelines definition
dscho 1ab1d14
ci: use git-sdk-64-minimal build artifact
dscho c1ab8df
mingw: be more generous when wrapping up the setitimer() emulation
dscho b6316e1
README: add a build badge (status of the Azure Pipelines build)
dscho 7a5caa2
tests: avoid calling Perl just to determine file sizes
dscho 2593b9b
tests: include detailed trace logs with --write-junit-xml upon failure
dscho 991b41a
mingw: try to work around issues with the test cleanup
dscho 77896b2
tests: add t/helper/ to the PATH with --with-dashes
dscho 4ec6cc8
t0061: workaround issues with --with-dashes and RUNTIME_PREFIX
dscho 248473d
tests: optionally skip bin-wrappers/
dscho 3532811
ci: speed up Windows phase
dscho 1572444
ci: parallelize testing on Windows
dscho File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,324 @@ | ||
| resources: | ||
dscho marked this conversation as resolved.
Show resolved
Hide resolved
dscho marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| - repo: self | ||
| fetchDepth: 1 | ||
|
|
||
| jobs: | ||
| - 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: | | ||
| $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 @" | ||
| 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() | ||
| - 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) | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.