Skip to content

Commit ea57839

Browse files
authored
Merge pull request #8194 from medyagh/windows_test_in_ghaction
add windows tests to github actions
2 parents 2754bb6 + 87114c2 commit ea57839

File tree

2 files changed

+366
-0
lines changed

2 files changed

+366
-0
lines changed

.github/workflows/master.yml

+183
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ jobs:
2222
run: |
2323
make minikube-linux-amd64
2424
make e2e-linux-amd64
25+
make windows
26+
make e2e-windows-amd64.exe
2527
cp -r test/integration/testdata ./out
2628
whoami
2729
echo github ref $GITHUB_REF
@@ -158,6 +160,183 @@ jobs:
158160
numPass=$(echo $STAT | jq '.NumberOfPass')
159161
echo "*** $numPass Passed ***"
160162
if [ "$numFail" -gt 0 ];then echo "*** $numFail Failed ***";exit 2;fi
163+
functional_test_docker_windows:
164+
needs: [build_minikube]
165+
env:
166+
TIME_ELAPSED: time
167+
JOB_NAME: "functional_test_docker_windows"
168+
GOPOGH_RESULT: ""
169+
STAT: ""
170+
runs-on: [self-hosted, windows-10-ent, 8CPUs]
171+
steps:
172+
- name: Clean up
173+
continue-on-error: true
174+
shell: powershell
175+
run: |
176+
echo $env:computerName
177+
ls
178+
$ErrorActionPreference = "SilentlyContinue"
179+
Remove-Item minikube_binaries -Force -Recurse
180+
ls
181+
- name: Download Binaries
182+
uses: actions/download-artifact@v1
183+
with:
184+
name: minikube_binaries
185+
- name: Info
186+
shell: powershell
187+
run: |
188+
echo $env:computername
189+
echo "------------------------"
190+
docker info
191+
echo "------------------------"
192+
docker volume ls
193+
echo "------------------------"
194+
- name: Run Integration Test in powershell
195+
continue-on-error: true
196+
shell: powershell
197+
run: |
198+
cd minikube_binaries
199+
New-Item -Force -Path "report" -ItemType Directory
200+
New-Item -Force -Path "testhome" -ItemType Directory
201+
$START_TIME=(GET-DATE)
202+
$env:KUBECONFIG="${pwd}\testhome\kubeconfig"
203+
$env:MINIKUBE_HOME="${pwd}\testhome"
204+
$ErrorActionPreference = "SilentlyContinue"
205+
./e2e-windows-amd64.exe --minikube-start-args="--driver=docker" --test.timeout=13m --test.v --test.run=TestFunctional --binary="./minikube-windows-amd64.exe" | Out-File -FilePath .\report\testout.txt -Encoding ASCII
206+
$END_TIME=(GET-DATE)
207+
echo $END_TIME
208+
$DURATION=(NEW-TIMESPAN -Start $START_TIME -End $END_TIME)
209+
echo $DURATION
210+
$SECS=($DURATION.TotalSeconds)
211+
$MINS=($DURATION.TotalMinutes)
212+
$T_ELAPSED="$MINS m $SECS s"
213+
echo "----"
214+
echo $T_ELAPSED
215+
echo "----"
216+
echo "::set-env name=TIME_ELAPSED::$T_ELAPSED"
217+
- name: Generate HTML Report
218+
continue-on-error: true
219+
shell: powershell
220+
run: |
221+
cd minikube_binaries
222+
Get-Content .\report\testout.txt | go tool test2json -t | Out-File -FilePath .\report\testout.json -Encoding ASCII
223+
$STAT=(gopogh -in .\report\testout.json -out .\report\testout.html -name "${Env:JOB_NAME} ${Env:GITHUB_REF}" -repo "${Env:GITHUB_REPOSITORY}" -details "${Env:GITHUB_SHA}")
224+
echo status: ${STAT}
225+
$FailNum=$(echo $STAT | jq '.NumberOfFail')
226+
$TestsNum=$(echo $STAT | jq '.NumberOfTests')
227+
$GOPOGH_RESULT="${JOB_NAME} : completed with ${FailNum} / ${TestsNum} failures in ${Env:TIME_ELAPSED}"
228+
echo "::set-env name=GOPOGH_RESULT::${GOPOGH_RESULT}"
229+
echo "::set-env name=STAT::${STAT}"
230+
echo ${GOPOGH_RESULT}
231+
$numFail=(echo $STAT | jq '.NumberOfFail')
232+
$failedTests=( echo $STAT | jq '.FailedTests')
233+
echo "----------------${numFail} Failures----------------------------"
234+
echo $failedTest
235+
echo "-------------------------------------------------------"
236+
$numPass=$(echo $STAT | jq '.NumberOfPass')
237+
echo "*** $numPass Passed ***"
238+
- uses: actions/upload-artifact@v1
239+
with:
240+
name: functional_test_docker_windows
241+
path: minikube_binaries/report
242+
- name: The End Result functional_test_docker_windows
243+
shell: powershell
244+
run: |
245+
$numFail=(echo $Env:STAT | jq '.NumberOfFail')
246+
$failedTests=( echo $Env:STAT | jq '.FailedTests')
247+
echo "----------------${numFail} Failures----------------------------"
248+
echo $failedTests
249+
echo "-------------------------------------------------------"
250+
$numPass=$(echo $Env:STAT | jq '.NumberOfPass')
251+
echo "*** $numPass Passed ***"
252+
If ($numFail -ge 0){ exit 2 } else { echo "goodjob" }
253+
If ($numPass -eq 0){ exit 2 }
254+
functional_test_hyperv_windows:
255+
needs: [build_minikube]
256+
env:
257+
TIME_ELAPSED: time
258+
JOB_NAME: "functional_test_hyperv_windows"
259+
GOPOGH_RESULT: ""
260+
runs-on: [self-hosted, windows-10-ent, 16CPUs]
261+
steps:
262+
- name: Clean up
263+
continue-on-error: true
264+
shell: powershell
265+
run: |
266+
echo $env:computerName
267+
ls
268+
$ErrorActionPreference = "SilentlyContinue"
269+
Remove-Item minikube_binaries -Force -Recurse
270+
ls
271+
- name: Download Binaries
272+
uses: actions/download-artifact@v1
273+
with:
274+
name: minikube_binaries
275+
- name: Info
276+
shell: powershell
277+
run: |
278+
echo $env:computername
279+
Get-WmiObject -class Win32_ComputerSystem
280+
- name: Run Integration Test in powershell
281+
continue-on-error: true
282+
shell: powershell
283+
run: |
284+
cd minikube_binaries
285+
New-Item -Force -Path "report" -ItemType Directory
286+
New-Item -Force -Path "testhome" -ItemType Directory
287+
$START_TIME=(GET-DATE)
288+
$env:KUBECONFIG="${pwd}\testhome\kubeconfig"
289+
$env:MINIKUBE_HOME="${pwd}\testhome"
290+
$ErrorActionPreference = "SilentlyContinue"
291+
./e2e-windows-amd64.exe --minikube-start-args="--driver=hyperv" --test.timeout=13m --test.v --test.run=TestFunctional --binary="./minikube-windows-amd64.exe" | Out-File -FilePath .\report\testout.txt -Encoding ASCII
292+
$END_TIME=(GET-DATE)
293+
echo $END_TIME
294+
$DURATION=(NEW-TIMESPAN -Start $START_TIME -End $END_TIME)
295+
echo $DURATION
296+
$SECS=($DURATION.TotalSeconds)
297+
$MINS=($DURATION.TotalMinutes)
298+
$T_ELAPSED="$MINS m $SECS s"
299+
echo "----"
300+
echo $T_ELAPSED
301+
echo "----"
302+
echo "::set-env name=TIME_ELAPSED::$T_ELAPSED"
303+
- name: Generate HTML Report
304+
continue-on-error: true
305+
shell: powershell
306+
run: |
307+
cd minikube_binaries
308+
Get-Content .\report\testout.txt | go tool test2json -t | Out-File -FilePath .\report\testout.json -Encoding ASCII
309+
$STAT=(gopogh -in .\report\testout.json -out .\report\testout.html -name "${Env:JOB_NAME} ${Env:GITHUB_REF}" -repo "${Env:GITHUB_REPOSITORY}" -details "${Env:GITHUB_SHA}")
310+
echo status: ${STAT}
311+
$FailNum=$(echo $STAT | jq '.NumberOfFail')
312+
$TestsNum=$(echo $STAT | jq '.NumberOfTests')
313+
$GOPOGH_RESULT="${JOB_NAME} : completed with ${FailNum} / ${TestsNum} failures in ${Env:TIME_ELAPSED}"
314+
echo "::set-env name=GOPOGH_RESULT::${GOPOGH_RESULT}"
315+
echo "::set-env name=STAT::${STAT}"
316+
echo ${GOPOGH_RESULT}
317+
$numFail=(echo $STAT | jq '.NumberOfFail')
318+
$failedTests=( echo $STAT | jq '.FailedTests')
319+
echo "----------------${numFail} Failures----------------------------"
320+
echo $failedTest
321+
echo "-------------------------------------------------------"
322+
$numPass=$(echo $STAT | jq '.NumberOfPass')
323+
echo "*** $numPass Passed ***"
324+
- uses: actions/upload-artifact@v1
325+
with:
326+
name: functional_test_hyperv_windows
327+
path: minikube_binaries/report
328+
- name: The End Result functional_test_hyperv_windows
329+
shell: powershell
330+
run: |
331+
$numFail=(echo $Env:STAT | jq '.NumberOfFail')
332+
$failedTests=( echo $Env:STAT | jq '.FailedTests')
333+
echo "----------------${numFail} Failures----------------------------"
334+
echo $failedTests
335+
echo "-------------------------------------------------------"
336+
$numPass=$(echo $Env:STAT | jq '.NumberOfPass')
337+
echo "*** $numPass Passed ***"
338+
If ($numFail -ge 0){ exit 2 } else { echo "goodjob" }
339+
If ($numPass -eq 0){ exit 2 }
161340
addons_certs_tests_docker_ubuntu:
162341
runs-on: ubuntu-18.04
163342
env:
@@ -523,6 +702,8 @@ jobs:
523702
multinode_pause_tests_docker_ubuntu,
524703
preload_docker_flags_tests_docker_ubuntu,
525704
functional_baremetal_ubuntu18_04,
705+
functional_test_docker_windows,
706+
functional_test_hyperv_windows,
526707
]
527708
runs-on: ubuntu-18.04
528709
steps:
@@ -539,6 +720,8 @@ jobs:
539720
cp -r ./multinode_pause_tests_docker_ubuntu ./all_reports/
540721
cp -r ./preload_docker_flags_tests_docker_ubuntu ./all_reports/
541722
cp -r ./functional_baremetal_ubuntu18_04 ./all_reports/
723+
cp -r ./functional_test_docker_windows ./all_reports/
724+
cp -r ./functional_test_hyperv_windows ./all_reports/
542725
- uses: actions/upload-artifact@v1
543726
with:
544727
name: all_reports

0 commit comments

Comments
 (0)