Skip to content

Commit

Permalink
fix windows tests by passing complete JAVA_VERSION
Browse files Browse the repository at this point in the history
  • Loading branch information
lemeurherve committed May 14, 2024
1 parent 457be4b commit 9677d52
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
12 changes: 9 additions & 3 deletions build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,19 @@ Test-CommandExists 'yq'

function Test-Image {
param (
$ImageName
$ImageNameAndJavaVersion
)

$items = $ImageNameAndJavaVersion.Split("|")
$imageName = $items[0]
$javaVersion = $items[1]
$imageNameItems = $imageName.Split(":")
$imageTag = $imageNameItems[1]

Write-Host "= TEST: Testing ${ImageName} image"

$env:IMAGE_NAME = $ImageName
$env:JAVA_VERSION = "$javaVersion"

$targetPath = '.\target\{0}' -f $imageTag
if(Test-Path $targetPath) {
Expand All @@ -107,6 +111,7 @@ function Test-Image {
Write-Host "There were $($TestResults.PassedCount) passed tests in ${ImageName}"
}
Remove-Item env:\IMAGE_NAME
Remove-Item env:\JAVA_VERSION

return $failed
}
Expand Down Expand Up @@ -161,8 +166,9 @@ if($target -eq 'test') {
Write-Host '= TEST: Testing all images...'
# Only fail the run afterwards in case of any test failures
$testFailed = $false
Invoke-Expression "$baseDockerCmd config" | yq '.services[].image' | ForEach-Object {
$testFailed = $testFailed -or (Test-Image $_)
$jdks = Invoke-Expression "$baseDockerCmd config" | yq --unwrapScalar --output-format json '.services' | ConvertFrom-Json
foreach ($jdk in $jdks.PSObject.Properties) {
$testFailed = $testFailed -or (Test-Image ('{0}|{1}' -f $jdk.Value.image, $jdk.Value.build.args.JAVA_VERSION))
}

# Fail if any test failures
Expand Down
5 changes: 3 additions & 2 deletions tests/sshAgent.Tests.ps1
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
Import-Module -DisableNameChecking -Force $PSScriptRoot/test_helpers.psm1

$global:IMAGE_NAME = Get-EnvOrDefault 'IMAGE_NAME' '' # Ex: jenkins4eval/ssh-agent:nanoserver-1809-jdk17
$global:JAVA_VERSION = Get-EnvOrDefault 'JAVA_VERSION' ''

$imageItems = $global:IMAGE_NAME.Split(':')
$global:IMAGE_TAG = $imageItems[1]
Expand Down Expand Up @@ -61,7 +62,7 @@ Cleanup($global:CONTAINERNAME)

Describe "[$global:IMAGE_NAME] image is present" {
It 'builds image' {
$exitCode, $stdout, $stderr = Run-Program 'docker' "build --build-arg `"WINDOWS_VERSION_TAG=${global:WINDOWSVERSIONTAG}`" --build-arg `"TOOLS_WINDOWS_VERSION=${global:TOOLSWINDOWSVERSION}`" --build-arg `"JAVA_VERSION=${global:JAVAMAJORVERSION}`" --build-arg `"JAVA_HOME=C:\openjdk-${global:JAVAMAJORVERSION}`" --tag=${global:IMAGE_TAG} --file ./windows/${global:WINDOWSFLAVOR}/Dockerfile ."
$exitCode, $stdout, $stderr = Run-Program 'docker' "build --build-arg `"WINDOWS_VERSION_TAG=${global:WINDOWSVERSIONTAG}`" --build-arg `"TOOLS_WINDOWS_VERSION=${global:TOOLSWINDOWSVERSION}`" --build-arg `"JAVA_VERSION=${global:JAVA_VERSION}`" --build-arg `"JAVA_HOME=C:\openjdk-${global:JAVAMAJORVERSION}`" --tag=${global:IMAGE_TAG} --file ./windows/${global:WINDOWSFLAVOR}/Dockerfile ."
$exitCode | Should -Be 0
}
}
Expand Down Expand Up @@ -199,7 +200,7 @@ Describe "[$global:IMAGE_NAME] build args" {
$TEST_JAW = 'C:/hamster'
$CUSTOM_IMAGE_NAME = "custom-${IMAGE_NAME}"

$exitCode, $stdout, $stderr = Run-Program 'docker' "build --build-arg `"WINDOWS_VERSION_TAG=${global:WINDOWSVERSIONTAG}`" --build-arg `"TOOLS_WINDOWS_VERSION=${global:TOOLSWINDOWSVERSION}`" --build-arg `"JAVA_VERSION=${global:JAVAMAJORVERSION}`" --build-arg `"JAVA_HOME=C:\openjdk-${global:JAVAMAJORVERSION}`" --build-arg `"user=$TEST_USER`" --build-arg `"JENKINS_AGENT_WORK=$TEST_JAW`" --tag=$CUSTOM_IMAGE_NAME --file ./windows/${global:WINDOWSFLAVOR}/Dockerfile ."
$exitCode, $stdout, $stderr = Run-Program 'docker' "build --build-arg `"WINDOWS_VERSION_TAG=${global:WINDOWSVERSIONTAG}`" --build-arg `"TOOLS_WINDOWS_VERSION=${global:TOOLSWINDOWSVERSION}`" --build-arg `"JAVA_VERSION=${global:JAVA_VERSION}`" --build-arg `"JAVA_HOME=C:\openjdk-${global:JAVAMAJORVERSION}`" --build-arg `"user=$TEST_USER`" --build-arg `"JENKINS_AGENT_WORK=$TEST_JAW`" --tag=$CUSTOM_IMAGE_NAME --file ./windows/${global:WINDOWSFLAVOR}/Dockerfile ."
$exitCode | Should -Be 0

$exitCode, $stdout, $stderr = Run-Program 'docker' "run --detach --tty --name=$global:CONTAINERNAME --publish-all $CUSTOM_IMAGE_NAME $global:CONTAINERSHELL"
Expand Down

0 comments on commit 9677d52

Please sign in to comment.