Browse Source

SQSCANNER-8 Execute ITs on Windows using AppVeyor

tags/2.5-rc1
Duarte Meneses 8 years ago
parent
commit
8792650566
2 changed files with 135 additions and 5 deletions
  1. 130
    3
      appveyor.ps1
  2. 5
    2
      appveyor.yml

+ 130
- 3
appveyor.ps1 View File

@@ -1,5 +1,106 @@
$ErrorActionPreference = "Stop"

function FetchAndUnzip
{
param ([string]$Url, [string]$Out)

$tmp = [System.IO.Path]::GetTempFileName()
[System.Reflection.Assembly]::LoadWithPartialName('System.Net.Http') | Out-Null
$client = (New-Object System.Net.Http.HttpClient)
try
{
if (-not([string]::IsNullOrEmpty($env:GITHUB_TOKEN)))
{
$credentials = [string]::Format([System.Globalization.CultureInfo]::InvariantCulture, "{0}:", $env:GITHUB_TOKEN);
$credentials = [Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($credentials));
$client.DefaultRequestHeaders.Authorization = (New-Object System.Net.Http.Headers.AuthenticationHeaderValue("Basic", $credentials));
}
$contents = $client.GetByteArrayAsync($url).Result;
[System.IO.File]::WriteAllBytes($tmp, $contents);
}
finally
{
$client.Dispose()
}

if (-not(Test-Path $Out))
{
mkdir $Out | Out-Null
}
[System.Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem') | Out-Null
[System.IO.Compression.ZipFile]::ExtractToDirectory($tmp, $Out)
}

function InstallAppveyorTools
{
$travisUtilsVersion = "16"
$localPath = "$env:USERPROFILE\.local"
$travisUtilsPath = "$localPath\travis-utils-$travisUtilsVersion"
if (Test-Path $travisUtilsPath)
{
echo "Reusing the Travis Utils version $travisUtilsVersion already downloaded under $travisUtilsPath"
}
else
{
$url = "https://github.com/SonarSource/travis-utils/archive/v$travisUtilsVersion.zip"
echo "Downloading Travis Utils version $travisUtilsVersion from $url into $localPath"
FetchAndUnzip $url $localPath
}

$mavenLocalRepository = "$env:USERPROFILE\.m2\repository"
if (-not(Test-Path $mavenLocalRepository))
{
mkdir $mavenLocalRepository | Out-Null
}
echo "Installating Travis Utils closed source Maven projects into $mavenLocalRepository"
Copy-Item "$travisUtilsPath\m2repo\*" $mavenLocalRepository -Force -Recurse

$env:ORCHESTRATOR_CONFIG_URL = ""
$env:TRAVIS = "ORCH-332"
}

function Build
{
param ([string]$Project, [string]$Sha1)

$msg = "Fetch [" + $Project + ":" + $Sha1 + "]"
echo $msg

$url = "https://github.com/$Project/archive/$Sha1.zip"
$tmp = "c:\snapshot"
if (Test-Path $tmp)
{
Cmd /C "rmdir /S /Q $tmp"
}

FetchAndUnzip $url $tmp

$msg = "Build [" + $Project + ":" + $Sha1 + "]"
echo $msg

pushd $tmp\*
try
{
mvn install "--batch-mode" "-DskipTests" "-Pdev"
CheckLastExitCode
}
finally
{
popd
}
}

function BuildSnapshot
{
param ([string]$Project)

echo "Fetch and build latest green snapshot of [$Project]"

$lastGreenSha1 = (new-object Net.WebClient).DownloadString("http://sonarsource-979.appspot.com/$Project/latestGreen")

Build $Project $lastGreenSha1
}

function CheckLastExitCode
{
param ([int[]]$SuccessCodes = @(0))
@@ -14,16 +115,42 @@ CALLSTACK:$(Get-PSCallStack | Out-String)
}
}

switch ($env:RUN)
BuildSnapshot "SonarSource/orchestrator"

switch ($env:TEST)
{
"ci"
{
mvn package "--batch-mode" "-B" "-e" "-V"
mvn verify "--batch-mode" "-B" "-e" "-V"
CheckLastExitCode
}

"it"
{
InstallAppveyorTools

mvn install "--batch-mode" "-Dsource.skip=true" "-Dmaven.test.skip=true"
CheckLastExitCode

if ($env:SQ_VERSION -eq "DEV")
{
BuildSnapshot "SonarSource/sonarqube"
}

pushd it
try
{
mvn install "--batch-mode" "-DsonarRunner.version=""2.5-SNAPSHOT""" "-Dsonar.runtimeVersion=""$env:SQ_VERSION""" "-Dmaven.test.redirectTestOutputToFile=false"
CheckLastExitCode
}
finally
{
popd
}
}

default
{
throw "Unexpected test mode: ""$env:RUN"""
throw "Unexpected TEST mode: $env:TEST"
}
}

+ 5
- 2
appveyor.yml View File

@@ -11,12 +11,15 @@ install:
- set MAVEN_VERSION=3.2.5
- choco install maven -version %MAVEN_VERSION%
- set PATH=%PATH%;C:\bin\apache-maven-%MAVEN_VERSION%\bin
- echo %JAVA_HOME%
- set JAVA_HOME=C:\Program Files\Java\jdk1.7.0

environment:
matrix:
- RUN: ci
JAVA_HOME: C:\Program Files\Java\jdk1.7.0
- RUN: it
SQ_VERSION: DEV
- RUN: it
SQ_VERSION: LTS

build_script:
- ps: ./appveyor.ps1

Loading…
Cancel
Save