diff options
| author | Edward Thomson <ethomson@edwardthomson.com> | 2018-08-26 18:05:31 +0100 |
|---|---|---|
| committer | Edward Thomson <ethomson@edwardthomson.com> | 2018-09-20 11:30:59 +0100 |
| commit | 8ce01d817e87e6f8cc890f2017a319547b06877a (patch) | |
| tree | 444e861c8f4f1d990d16f132b402fb86ddca0414 | |
| parent | 9b122bfbf51d21683e2bc8042487818e715a707c (diff) | |
| download | libgit2-8ce01d817e87e6f8cc890f2017a319547b06877a.tar.gz | |
ci: use templates for VSTS builds
Our build YAML is becoming unweildly and full of copy-pasta. Simplify
with templates.
| -rw-r--r-- | .vsts-ci.yml | 118 | ||||
| -rw-r--r-- | ci/vsts-bash.yml | 17 | ||||
| -rw-r--r-- | ci/vsts-docker.yml | 33 | ||||
| -rw-r--r-- | ci/vsts-powershell.yml | 17 |
4 files changed, 97 insertions, 88 deletions
diff --git a/.vsts-ci.yml b/.vsts-ci.yml index 2098deda7..6788e0d8f 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -11,57 +11,22 @@ phases: queue: name: 'Hosted Linux Preview' steps: - - task: Docker@0 - displayName: Build - inputs: - action: 'Run an image' + - template: ci/vsts-docker.yml + parameters: imageName: 'libgit2/trusty-openssl:latest' - volumes: | - $(Build.SourcesDirectory):/src - $(Build.BinariesDirectory):/build - workDir: '/build' - containerCommand: '/src/ci/build.sh' - detached: false - - task: Docker@0 - displayName: Test - inputs: - action: 'Run an image' - imageName: 'libgit2/trusty-openssl:latest' - volumes: | - $(Build.SourcesDirectory):/src - $(Build.BinariesDirectory):/build - envVars: | + environmentVariables: | CC=gcc LEAK_CHECK=valgrind - workDir: '/build' - containerCommand: '/src/ci/test.sh' - detached: false - phase: linux_trusty_clang_openssl displayName: 'Linux (Trusty; Clang; OpenSSL)' queue: name: 'Hosted Linux Preview' steps: - - task: Docker@0 - displayName: Build - inputs: - action: 'Run an image' - imageName: 'libgit2/trusty-openssl:latest' - volumes: | - $(Build.SourcesDirectory):/src - $(Build.BinariesDirectory):/build - workDir: '/build' - containerCommand: '/src/ci/build.sh' - detached: false - - task: Docker@0 - displayName: Test - inputs: - action: 'Run an image' + - template: ci/vsts-docker.yml + parameters: imageName: 'libgit2/trusty-openssl:latest' - volumes: | - $(Build.SourcesDirectory):/src - $(Build.BinariesDirectory):/build - envVars: | + environmentVariables: | CC=clang LEAK_CHECK=valgrind workDir: '/build' @@ -75,46 +40,32 @@ phases: steps: - bash: . '$(Build.SourcesDirectory)/ci/setup-osx.sh' displayName: Setup - workingDirectory: '$(Build.BinariesDirectory)' - - bash: . '$(Build.SourcesDirectory)/ci/build.sh' - displayName: Build - workingDirectory: '$(Build.BinariesDirectory)' - env: - PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig - - bash: . '$(Build.SourcesDirectory)/ci/test.sh' - displayName: Test - workingDirectory: '$(Build.BinariesDirectory)' - env: - TMPDIR: $(Agent.TempDirectory) - LEAK_CHECK: leaks + - template: ci/vsts-bash.yml + parameters: + environmentVariables: + TMPDIR: $(Agent.TempDirectory) + PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig + LEAK_CHECK: leaks - phase: windows_vs_amd64 displayName: 'Windows (Visual Studio; amd64)' queue: name: Hosted steps: - - powershell: . '$(Build.SourcesDirectory)\ci\build.ps1' - displayName: Build - workingDirectory: '$(Build.BinariesDirectory)' - env: - CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013 Win64" - - powershell: . '$(Build.SourcesDirectory)\ci\test.ps1' - displayName: Test - workingDirectory: '$(Build.BinariesDirectory)' + - template: ci/vsts-powershell.yml + parameters: + environmentVariables: + CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013 Win64" - phase: windows_vs_x86 displayName: 'Windows (Visual Studio; x86)' queue: name: Hosted steps: - - powershell: . '$(Build.SourcesDirectory)\ci\build.ps1' - displayName: Build - workingDirectory: '$(Build.BinariesDirectory)' - env: - CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013" - - powershell: . '$(Build.SourcesDirectory)\ci\test.ps1' - displayName: Test - workingDirectory: '$(Build.BinariesDirectory)' + - template: ci/vsts-powershell.yml + parameters: + environmentVariables: + CMAKE_OPTIONS: -DMSVC_CRTDBG=ON -G"Visual Studio 12 2013" - phase: windows_mingw_amd64 displayName: 'Windows (MinGW; amd64)' @@ -123,19 +74,14 @@ phases: steps: - powershell: . '$(Build.SourcesDirectory)\ci\setup-mingw.ps1' displayName: Setup - workingDirectory: '$(Build.BinariesDirectory)' env: TEMP: $(Agent.TempDirectory) ARCH: amd64 - - powershell: . '$(Build.SourcesDirectory)\ci\build.ps1' - displayName: Build - workingDirectory: '$(Build.BinariesDirectory)' - env: - CMAKE_OPTIONS: -G"MinGW Makefiles" - PATH: $(Agent.TempDirectory)\mingw64\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin - - powershell: . '$(Build.SourcesDirectory)\ci\test.ps1' - displayName: Test - workingDirectory: '$(Build.BinariesDirectory)' + - template: ci/vsts-powershell.yml + parameters: + environmentVariables: + CMAKE_OPTIONS: -G"MinGW Makefiles" + PATH: $(Agent.TempDirectory)\mingw64\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin - phase: windows_mingw_x86 displayName: 'Windows (MinGW; x86)' @@ -148,12 +94,8 @@ phases: env: TEMP: $(Agent.TempDirectory) ARCH: x86 - - powershell: . '$(Build.SourcesDirectory)\ci\build.ps1' - displayName: Build - workingDirectory: '$(Build.BinariesDirectory)' - env: - CMAKE_OPTIONS: -G"MinGW Makefiles" - PATH: $(Agent.TempDirectory)\mingw32\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin - - powershell: . '$(Build.SourcesDirectory)\ci\test.ps1' - displayName: Test - workingDirectory: '$(Build.BinariesDirectory)' + - template: ci/vsts-powershell.yml + parameters: + environmentVariables: + CMAKE_OPTIONS: -G"MinGW Makefiles" + PATH: $(Agent.TempDirectory)\mingw32\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\CMake\bin diff --git a/ci/vsts-bash.yml b/ci/vsts-bash.yml new file mode 100644 index 000000000..d776a3649 --- /dev/null +++ b/ci/vsts-bash.yml @@ -0,0 +1,17 @@ +# These are the steps used for building on machines with bash. +steps: +- bash: . '$(Build.SourcesDirectory)/ci/build.sh' + displayName: Build + workingDirectory: '$(Build.BinariesDirectory)' + env: ${{ parameters.environmentVariables }} +- bash: . '$(Build.SourcesDirectory)/ci/test.sh' + displayName: Test + workingDirectory: '$(Build.BinariesDirectory)' + env: ${{ parameters.environmentVariables }} +- task: PublishTestResults@2 + displayName: Publish Test Results + condition: succeededOrFailed() + inputs: + testResultsFiles: 'results_*.xml' + searchFolder: '$(Build.BinariesDirectory)' + mergeTestResults: true diff --git a/ci/vsts-docker.yml b/ci/vsts-docker.yml new file mode 100644 index 000000000..e92510478 --- /dev/null +++ b/ci/vsts-docker.yml @@ -0,0 +1,33 @@ +# These are the steps used in a container-based build in VSTS. +steps: +- task: docker@0 + displayName: Build + inputs: + action: 'Run an image' + imageName: ${{ parameters.imageName }} + volumes: | + $(Build.SourcesDirectory):/src + $(Build.BinariesDirectory):/build + envVars: ${{ parameters.environmentVariables }} + workDir: '/build' + containerCommand: '/src/ci/build.sh' + detached: false +- task: docker@0 + displayName: Test + inputs: + action: 'Run an image' + imageName: ${{ parameters.imageName }} + volumes: | + $(Build.SourcesDirectory):/src + $(Build.BinariesDirectory):/build + envVars: ${{ parameters.environmentVariables }} + workDir: '/build' + containerCommand: '/src/ci/test.sh' + detached: false +- task: publishtestresults@2 + displayName: Publish Test Results + condition: succeededOrFailed() + inputs: + testResultsFiles: 'results_*.xml' + searchFolder: '$(Build.BinariesDirectory)' + mergeTestResults: true diff --git a/ci/vsts-powershell.yml b/ci/vsts-powershell.yml new file mode 100644 index 000000000..a2eb175d5 --- /dev/null +++ b/ci/vsts-powershell.yml @@ -0,0 +1,17 @@ +# These are the steps used for building on machines with PowerShell. +steps: +- powershell: . '$(Build.SourcesDirectory)\ci\build.ps1' + displayName: Build + workingDirectory: '$(Build.BinariesDirectory)' + env: ${{ parameters.environmentVariables }} +- powershell: . '$(Build.SourcesDirectory)\ci\test.ps1' + displayName: Test + workingDirectory: '$(Build.BinariesDirectory)' + env: ${{ parameters.environmentVariables }} +- task: PublishTestResults@2 + displayName: Publish Test Results + condition: succeededOrFailed() + inputs: + testResultsFiles: 'results_*.xml' + searchFolder: '$(Build.BinariesDirectory)' + mergeTestResults: true |
