summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2019-07-19 12:09:58 +0200
committerPatrick Steinhardt <ps@pks.im>2019-07-20 19:10:10 +0200
commit0cda525258c5b49c7b551db5905a103fee1237a3 (patch)
tree677f313f192833e477c91639af2bf7fc41c4338e
parent1be4f896bd8c33e0acb8bcf5eda1f6d844c81c14 (diff)
downloadlibgit2-0cda525258c5b49c7b551db5905a103fee1237a3.tar.gz
azure: use bash scripts across all platforms
Right now, we maintain semantically equivalent build scripts in both Bash and Powershell to support both Windows and non-Windows hosts. Azure Pipelines supports Bash on Windows, too, via Git for Windows, and as such it's not really required to maintain the Powershell scripts at all. Remove them to reduce our own maintenance burden.
-rw-r--r--azure-pipelines.yml8
-rw-r--r--azure-pipelines/build.ps130
-rw-r--r--azure-pipelines/nightly.yml8
-rw-r--r--azure-pipelines/powershell.yml17
-rw-r--r--azure-pipelines/test.ps1139
5 files changed, 8 insertions, 194 deletions
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index abe0c3ebe..2d79dd3a6 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -78,7 +78,7 @@ jobs:
displayName: 'Windows (amd64; Visual Studio)'
pool: Hosted
steps:
- - template: azure-pipelines/powershell.yml
+ - template: azure-pipelines/bash.yml
parameters:
environmentVariables:
CMAKE_GENERATOR: Visual Studio 12 2013 Win64
@@ -88,7 +88,7 @@ jobs:
displayName: 'Windows (x86; Visual Studio)'
pool: Hosted
steps:
- - template: azure-pipelines/powershell.yml
+ - template: azure-pipelines/bash.yml
parameters:
environmentVariables:
CMAKE_GENERATOR: Visual Studio 12 2013
@@ -103,7 +103,7 @@ jobs:
env:
TEMP: $(Agent.TempDirectory)
ARCH: amd64
- - template: azure-pipelines/powershell.yml
+ - template: azure-pipelines/bash.yml
parameters:
environmentVariables:
BUILD_PATH: $(Agent.TempDirectory)\mingw64\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin
@@ -120,7 +120,7 @@ jobs:
env:
TEMP: $(Agent.TempDirectory)
ARCH: x86
- - template: azure-pipelines/powershell.yml
+ - template: azure-pipelines/bash.yml
parameters:
environmentVariables:
BUILD_PATH: $(Agent.TempDirectory)\mingw32\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin
diff --git a/azure-pipelines/build.ps1 b/azure-pipelines/build.ps1
deleted file mode 100644
index 96f39db4c..000000000
--- a/azure-pipelines/build.ps1
+++ /dev/null
@@ -1,30 +0,0 @@
-Set-StrictMode -Version Latest
-
-$ErrorActionPreference = "Stop"
-$PSDefaultParameterValues['*:ErrorAction'] = 'Stop'
-
-if ($Env:SOURCE_DIR) { $SourceDirectory = $Env:SOURCE_DIR } else { $SourceDirectory = Split-Path (Split-Path $MyInvocation.MyCommand.Path -Parent) -Parent }
-$BuildDirectory = $(Get-Location).Path
-
-Write-Host "Source directory: ${SourceDirectory}"
-Write-Host "Build directory: ${BuildDirectory}"
-Write-Host ""
-Write-Host "Operating system version:"
-Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, ServicePackMajorVersion, BuildNumber, OSArchitecture | Format-List
-Write-Host "PATH: ${Env:PATH}"
-Write-Host ""
-
-Write-Host "##############################################################################"
-Write-Host "## Configuring build environment"
-Write-Host "##############################################################################"
-
-Invoke-Expression "cmake ${SourceDirectory} -DBUILD_EXAMPLES=ON -DBUILD_FUZZERS=ON -DUSE_STANDALONE_FUZZERS=ON -DENABLE_WERROR=ON -G '${Env:CMAKE_GENERATOR}' ${Env:CMAKE_OPTIONS}"
-if ($LastExitCode -ne 0) { [Environment]::Exit($LastExitCode) }
-
-Write-Host ""
-Write-Host "##############################################################################"
-Write-Host "## Building libgit2"
-Write-Host "##############################################################################"
-
-cmake --build .
-if ($LastExitCode -ne 0) { [Environment]::Exit($LastExitCode) }
diff --git a/azure-pipelines/nightly.yml b/azure-pipelines/nightly.yml
index b6d5ed842..eebc3eda9 100644
--- a/azure-pipelines/nightly.yml
+++ b/azure-pipelines/nightly.yml
@@ -79,7 +79,7 @@ jobs:
displayName: 'Windows (amd64; Visual Studio)'
pool: Hosted
steps:
- - template: powershell.yml
+ - template: bash.yml
parameters:
environmentVariables:
CMAKE_GENERATOR: Visual Studio 12 2013 Win64
@@ -90,7 +90,7 @@ jobs:
displayName: 'Windows (x86; Visual Studio)'
pool: Hosted
steps:
- - template: powershell.yml
+ - template: bash.yml
parameters:
environmentVariables:
CMAKE_GENERATOR: Visual Studio 12 2013
@@ -106,7 +106,7 @@ jobs:
env:
TEMP: $(Agent.TempDirectory)
ARCH: amd64
- - template: powershell.yml
+ - template: bash.yml
parameters:
environmentVariables:
BUILD_PATH: $(Agent.TempDirectory)\mingw64\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin
@@ -124,7 +124,7 @@ jobs:
env:
TEMP: $(Agent.TempDirectory)
ARCH: x86
- - template: powershell.yml
+ - template: bash.yml
parameters:
environmentVariables:
BUILD_PATH: $(Agent.TempDirectory)\mingw32\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\CMake\bin
diff --git a/azure-pipelines/powershell.yml b/azure-pipelines/powershell.yml
deleted file mode 100644
index 96da4eaaa..000000000
--- a/azure-pipelines/powershell.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-# These are the steps used for building on machines with PowerShell.
-steps:
-- powershell: . '$(Build.SourcesDirectory)\azure-pipelines\build.ps1'
- displayName: Build
- workingDirectory: '$(Build.BinariesDirectory)'
- env: ${{ parameters.environmentVariables }}
-- powershell: . '$(Build.SourcesDirectory)\azure-pipelines\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
diff --git a/azure-pipelines/test.ps1 b/azure-pipelines/test.ps1
deleted file mode 100644
index 0c9e795f0..000000000
--- a/azure-pipelines/test.ps1
+++ /dev/null
@@ -1,139 +0,0 @@
-Set-StrictMode -Version Latest
-
-$ErrorActionPreference = "Stop"
-$PSDefaultParameterValues['*:ErrorAction'] = 'Stop'
-
-[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
-
-$SourceDir = Split-Path (Split-Path (Get-Variable MyInvocation).Value.MyCommand.Path)
-$BuildDir = Get-Location
-$global:Success = $true
-
-if ($Env:SKIP_TESTS) { exit }
-
-# Ask ctest what it would run if we were to invoke it directly. This lets
-# us manage the test configuration in a single place (tests/CMakeLists.txt)
-# instead of running clar here as well. But it allows us to wrap our test
-# harness with a leak checker like valgrind. Append the option to write
-# JUnit-style XML files.
-function run_test {
- $TestName = $args[0]
-
- $TestCommand = (ctest -N -V -R "^$TestName$") -join "`n"
-
- if (-Not ($TestCommand -match "(?ms).*\n^[0-9]*: Test command: ")) {
- echo "Could not find tests: $TestName"
- exit
- }
-
- $TestCommand = (ctest -N -V -R "^$TestName$") -join "`n" -replace "(?ms).*\n^[0-9]*: Test command: ","" -replace "\n.*",""
- $TestCommand += " -r${BuildDir}\results_${TestName}.xml"
-
- if ($Env:GITTEST_FLAKY_RETRY -gt 0) {
- $AttemptsRemain = $Env:GITTEST_FLAKY_RETRY
- } else {
- $AttemptsRemain = 1
- }
-
- $Failed = 0
- while ($AttemptsRemain -ne 0) {
- if ($Failed -eq 1) {
- Write-Host ""
- Write-Host "Re-running flaky $TestName tests..."
- Write-Host ""
- }
-
- Invoke-Expression $TestCommand
- if ($LastExitCode -eq 0) {
- $Failed = 0
- break
- } else {
- $Failed = 1
- }
-
- $AttemptsRemain = $AttemptsRemain - 1
- }
-
- if ($Failed -eq 1) { $global:Success = $false }
-}
-
-Write-Host "##############################################################################"
-Write-Host "## Configuring test environment"
-Write-Host "##############################################################################"
-
-if (-not $Env:SKIP_PROXY_TESTS) {
- Invoke-WebRequest -Method GET -Uri https://github.com/ethomson/poxyproxy/releases/download/v0.7.0/poxyproxy-0.7.0.jar -OutFile poxyproxy.jar
-
- Write-Host ""
- Write-Host "Starting HTTP proxy (Basic)..."
- javaw -jar poxyproxy.jar --port 8080 --credentials foo:bar --auth-type basic --quiet
-
- Write-Host ""
- Write-Host "Starting HTTP proxy (NTLM)..."
- javaw -jar poxyproxy.jar --port 8090 --credentials foo:bar --auth-type ntlm --quiet
-}
-
-if (-not $Env:SKIP_OFFLINE_TESTS) {
- Write-Host ""
- Write-Host "##############################################################################"
- Write-Host "## Running (offline) tests"
- Write-Host "##############################################################################"
-
- run_test offline
-}
-
-if ($Env:RUN_INVASIVE_TESTS) {
- Write-Host ""
- Write-Host "##############################################################################"
- Write-Host "## Running (invasive) tests"
- Write-Host "##############################################################################"
-
- $Env:GITTEST_INVASIVE_FS_SIZE=1
- $Env:GITTEST_INVASIVE_MEMORY=1
- $Env:GITTEST_INVASIVE_SPEED=1
- run_test invasive
- $Env:GITTEST_INVASIVE_FS_SIZE=$null
- $Env:GITTEST_INVASIVE_MEMORY=$null
- $Env:GITTEST_INVASIVE_SPEED=$null
-}
-
-if (-not $Env:SKIP_ONLINE_TESTS) {
- Write-Host ""
- Write-Host "##############################################################################"
- Write-Host "## Running (online) tests"
- Write-Host "##############################################################################"
-
- $Env:GITTEST_FLAKY_RETRY=5
- run_test online
- $Env:GITTEST_FLAKY_RETRY=0
-}
-
-if (-not $Env:SKIP_PROXY_TESTS) {
- # Test HTTP Basic authentication
- Write-Host ""
- Write-Host "Running proxy tests (Basic authentication)"
- Write-Host ""
-
- $Env:GITTEST_REMOTE_PROXY_HOST="localhost:8080"
- $Env:GITTEST_REMOTE_PROXY_USER="foo"
- $Env:GITTEST_REMOTE_PROXY_PASS="bar"
- run_test proxy
-
- # Test NTLM authentication
- Write-Host ""
- Write-Host "Running proxy tests (NTLM authentication)"
- Write-Host ""
-
- $Env:GITTEST_REMOTE_PROXY_HOST="localhost:8090"
- $Env:GITTEST_REMOTE_PROXY_USER="foo"
- $Env:GITTEST_REMOTE_PROXY_PASS="bar"
- run_test proxy
-
- $Env:GITTEST_REMOTE_PROXY_HOST=$null
- $Env:GITTEST_REMOTE_PROXY_USER=$null
- $Env:GITTEST_REMOTE_PROXY_PASS=$null
-
- taskkill /F /IM javaw.exe
-}
-
-if (-Not $global:Success) { exit 1 }