forked from git/git
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1837 from git-for-windows/azure-pipelines
Set up CI with Azure Pipelines
- Loading branch information
Showing
54 changed files
with
622 additions
and
176 deletions.
There are no files selected for viewing
This file contains 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 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 | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,325 @@ | |||
resources: | |||
- repo: self | |||
fetchDepth: 1 | |||
|
|||
phases: | |||
- phase: linux_clang | |||
displayName: linux-clang | |||
condition: succeeded() | |||
queue: | |||
name: Hosted Ubuntu 1604 | |||
steps: | |||
- bash: | | |||
test -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 VS2017 | |||
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 "") { | |||
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=\"--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 "") { | |||
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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || 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 -z "$GITFILESHAREPWD" || sudo umount "$HOME/test-cache" || exit 1 | |||
displayName: 'ci/test-documentation.sh' | |||
env: | |||
GITFILESHAREPWD: $(gitfileshare.pwd) |
This file contains 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.