Files
odo/.ibm/pipelines/windows-test-script.ps1
Philippe Martin f4a860ec2e Install and use a reverse proxy for staging devfile registry (#5922)
* Kubernetes Manifests to deploy nginx reverse proxy for staging devfile registry

* Get the external address of the loadBalancer service for devfile proxy

* If DEVFILE_PROXY is defined, use it as Devfile registry

* Fix get address from Windows

* Add some log displaying proxy address found

* Filter requests on user agent

* Add Go-http-client user-agent

* Add doc
2022-07-20 11:31:25 +02:00

104 lines
3.1 KiB
PowerShell

function Shout {
Write-Host "--------------------------------------------------------------------------------"
Write-Host $args[0]
Write-Host "--------------------------------------------------------------------------------"
}
function Check-ExitCode {
if ($args[0] -ne 0) {
Write-Host "ERROR: Script returned a non-zero exit code"
Pop-Location
Do-Cleanup
exit 1
}
}
function Do-Cleanup {
if (Test-Path -Path $BUILD_NUMBER) {
Shout "Removed $BUILD_NUMBER"
Remove-Item -Force -Recurse $BUILD_NUMBER
}
}
function Run-Test {
Shout "Cloning Repo"
git clone $REPO $BUILD_NUMBER
Push-Location $BUILD_NUMBER
Shout "Checkout to $GIT_PR_NUMBER"
git fetch -v origin pull/${GIT_PR_NUMBER}/head:pr${GIT_PR_NUMBER}
git checkout main
git merge pr${GIT_PR_NUMBER} --no-edit
Shout "Setup ENV variables"
mkdir bin
mkdir artifacts
$PATH = [Environment]::GetEnvironmentVariable("PATH")
$GOBIN="$(Get-Location)\bin"
[Environment]::SetEnvironmentVariable("GOBIN", "$GOBIN")
[Environment]::SetEnvironmentVariable("PATH", "$GOBIN;$PATH")
# Set kubeconfig to current dir. This ensures no clashes with other test runs
[Environment]::SetEnvironmentVariable("KUBECONFIG","$(Get-Location)\config")
$ARTIFACT_DIR=${ARTIFACT_DIR:-"$(Get-Location)\artifacts"}
$CUSTOM_HOMEDIR=$ARTIFACT_DIR
$WORKDIR=$(Get-Location)
[Environment]::SetEnvironmentVariable("ARTIFACT_DIR",${ARTIFACT_DIR:-"$(pwd)\artifacts"})
[Environment]::SetEnvironmentVariable("CUSTOM_HOMEDIR",$ARTIFACT_DIR)
[Environment]::SetEnvironmentVariable("WORKDIR",${WORKDIR:-"$(pwd)"})
$GOCACHE="$(Get-Location)\.gocache"
mkdir $GOCACHE
[Environment]::SetEnvironmentVariable("GOCACHE", "$GOCACHE")
[Environment]::SetEnvironmentVariable("SKIP_USER_LOGIN_TESTS","true")
Shout "Login IBMcloud"
ibmcloud login --apikey ${API_KEY}
ibmcloud target -r eu-de
ibmcloud oc cluster config -c ${CLUSTER_ID}
Shout "Login Openshift"
oc login -u apikey -p ${API_KEY} ${IBM_OPENSHIFT_ENDPOINT}
Check-ExitCode $LASTEXITCODE
Shout "Getting Devfile proxy address"
$DEVFILE_PROXY=$(oc get svc -n devfile-proxy nginx -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
if ( $LASTEXITCODE -eq 0 )
{
Shout "Using Devfile proxy: $DEVFILE_PROXY"
[Environment]::SetEnvironmentVariable("DEVFILE_PROXY", "$DEVFILE_PROXY")
}
Shout "Create Binary"
make install
Shout "Running test"
make test-integration | tee -a C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\$LOGFILE
Check-ExitCode $LASTEXITCODE
make test-e2e | tee -a C:\Users\Administrator.ANSIBLE-TEST-VS\AppData\Local\Temp\$LOGFILE
Check-ExitCode $LASTEXITCODE
Pop-Location
Shout "Test Finished"
}
$GIT_PR_NUMBER=$args[0]
$BUILD_NUMBER=$args[1]
$API_KEY=$args[2]
$IBM_OPENSHIFT_ENDPOINT=$args[3]
$LOGFILE=$args[4]
$REPO=$args[5]
$CLUSTER_ID=$args[6]
Shout "Args Recived"
# Pre test cleanup
Do-Cleanup
# Run test
Run-Test
# Post test cleanup
Shout "Cleanup"
Do-Cleanup