parent
217c92b48a
commit
1a741e0439
3 changed files with 75 additions and 243 deletions
@ -1,75 +0,0 @@ |
||||
param ( |
||||
[string]$Version = $null |
||||
) |
||||
Set-StrictMode -Version latest |
||||
$ErrorActionPreference = "Stop" |
||||
$ProgressPreference = "SilentlyContinue" |
||||
|
||||
echo "=== Installing DMD ===" |
||||
|
||||
# default installation directory |
||||
$dmd_install = "C:\D" |
||||
$dmd_version_file = "C:\cache\DMD_LATEST" |
||||
|
||||
if (!$Version) { |
||||
#echo "Fetching latest DMD version..." |
||||
$dmd_latest_url = "http://downloads.dlang.org/releases/LATEST" |
||||
$retries = 10 |
||||
echo ('Downloading {0} ...' -f $dmd_latest_url) |
||||
for ($i = 1; $i -le $retries; $i++) { |
||||
try { |
||||
[system.io.directory]::CreateDirectory((Split-Path -parent $dmd_version_file)) > $null |
||||
Invoke-WebRequest -URI $dmd_latest_url -OutFile $dmd_version_file |
||||
echo '... DONE' |
||||
break |
||||
} catch [net.WebException] { |
||||
if ($i -eq $retries) { |
||||
break |
||||
} |
||||
$backoff = (10 * $i) # backoff 10s, 20s, 30s... |
||||
echo ('{0}: {1}' -f $dmd_latest_url, $_.Exception.Message) |
||||
echo ('Retrying in {0}s...' -f $backoff) |
||||
Start-Sleep -m ($backoff * 1000) |
||||
} catch { |
||||
throw |
||||
} |
||||
} |
||||
if (Test-Path $dmd_version_file) { |
||||
$dmd_version = Get-Content -Path $dmd_version_file |
||||
} else { |
||||
throw "Failed to resolve latest DMD version" |
||||
} |
||||
} else { |
||||
$dmd_version = $Version |
||||
} |
||||
$dmd_url = "http://downloads.dlang.org/releases/2.x/$dmd_version/dmd.$dmd_version.windows.zip" |
||||
$dmd_filename = [System.IO.Path]::GetFileName($dmd_url) |
||||
$dmd_archive = Join-Path ($env:temp) $dmd_filename |
||||
|
||||
echo "Downloading $dmd_filename..." |
||||
$retries = 10 |
||||
for ($i = 1; $i -le $retries; $i++) { |
||||
try { |
||||
(New-Object net.webclient).DownloadFile($dmd_url, $dmd_archive) |
||||
break |
||||
} catch [net.WebException] { |
||||
if ($i -eq $retries) { |
||||
throw # fail on last retry |
||||
} |
||||
$backoff = (10 * $i) # backoff 10s, 20s, 30s... |
||||
echo ('{0}: {1}' -f $dmd_url, $_.Exception.Message) |
||||
echo ('Retrying in {0}s...' -f $backoff) |
||||
Start-Sleep -m ($backoff * 1000) |
||||
} |
||||
} |
||||
|
||||
echo "Extracting $dmd_filename..." |
||||
Expand-Archive $dmd_archive -Force -DestinationPath $dmd_install |
||||
|
||||
# add to environment path |
||||
echo "Installing DMD..." |
||||
$dmd_bin = Join-Path $dmd_install "dmd2\windows\bin" |
||||
$Env:Path = $Env:Path + ";" + $dmd_bin |
||||
|
||||
echo "Testing DMD..." |
||||
& dmd.exe --version |
@ -0,0 +1,71 @@ |
||||
python ./skip_ci.py --base-branch-env=SYSTEM_PULLREQUEST_TARGETBRANCH --is-pull-env=SYSTEM_PULLREQUEST_PULLREQUESTID --base-branch-origin |
||||
if ($LastExitCode -ne 0) { |
||||
exit 0 |
||||
} |
||||
|
||||
# remove Chocolately, MinGW, Strawberry Perl from path, so we don't find gcc/gfortran and try to use it |
||||
$env:Path = ($env:Path.Split(';') | Where-Object { $_ -notmatch 'mingw|Strawberry|Chocolatey' }) -join ';' |
||||
|
||||
# download and install prerequisites |
||||
function DownloadFile([String] $Source, [String] $Destination) { |
||||
$retries = 10 |
||||
echo "Downloading $Source" |
||||
for ($i = 1; $i -le $retries; $i++) { |
||||
try { |
||||
(New-Object net.webclient).DownloadFile($Source, $Destination) |
||||
break # succeeded |
||||
} catch [net.WebException] { |
||||
if ($i -eq $retries) { |
||||
throw # fail on last retry |
||||
} |
||||
$backoff = (10 * $i) # backoff 10s, 20s, 30s... |
||||
echo ('{0}: {1}' -f $Source, $_.Exception.Message) |
||||
echo ('Retrying in {0}s...' -f $backoff) |
||||
Start-Sleep -m ($backoff * 1000) |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
if ($env:backend -eq 'ninja') { $dmd = $true } else { $dmd = $false } |
||||
|
||||
DownloadFile -Source https://github.com/mesonbuild/cidata/releases/download/ci1/ci_data.zip -Destination $env:AGENT_WORKFOLDER\ci_data.zip |
||||
echo "Extracting ci_data.zip" |
||||
Expand-Archive $env:AGENT_WORKFOLDER\ci_data.zip -DestinationPath $env:AGENT_WORKFOLDER\ci_data |
||||
& "$env:AGENT_WORKFOLDER\ci_data\install.ps1" -Arch $env:arch -Compiler $env:compiler -Boost $true -DMD $dmd |
||||
|
||||
|
||||
echo "=== PATH BEGIN ===" |
||||
echo ($env:Path).Replace(';',"`n") |
||||
echo "=== PATH END ===" |
||||
echo "" |
||||
|
||||
$progs = @("python","ninja","pkg-config","cl","rc","link") |
||||
foreach ($prog in $progs) { |
||||
echo "" |
||||
echo "Locating ${prog}:" |
||||
where.exe $prog |
||||
} |
||||
|
||||
echo "" |
||||
echo "Ninja / MSBuld version:" |
||||
if ($env:backend -eq 'ninja') { |
||||
ninja --version |
||||
} else { |
||||
MSBuild /version |
||||
} |
||||
|
||||
echo "" |
||||
echo "Python version:" |
||||
python --version |
||||
|
||||
# Needed for running unit tests in parallel. |
||||
echo "" |
||||
python -m pip --disable-pip-version-check install --upgrade pefile pytest-xdist |
||||
|
||||
echo "" |
||||
echo "=== Start running tests ===" |
||||
# Starting from VS2019 Powershell(?) will fail the test run |
||||
# if it prints anything to stderr. Python's test runner |
||||
# does that by default so we need to forward it. |
||||
cmd /c 'python 2>&1' run_tests.py --backend $env:backend |
Loading…
Reference in new issue