diff --git a/hack/jenkins/osx_cleanup_and_reboot.sh b/hack/jenkins/osx_cleanup_and_reboot.sh new file mode 100755 index 0000000000..503796c212 --- /dev/null +++ b/hack/jenkins/osx_cleanup_and_reboot.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +# Copyright 2019 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Periodically cleanup and reboot if no Jenkins subprocesses are running. +set -uf -o pipefail + +PATH=/usr/local/bin:/sbin:/usr/local/sbin:$PATH + +exit_if_jenkins() { + jenkins=$(pgrep java) + if [[ "$jenkins" -- "" ]]; then + echo "no java, no jenkins" + return 0 + fi + pstree $jenkins | grep -v java && echo "jenkins is running..." && exit 1 +} + +exit_if_jenkins +echo "waiting to see if any jobs are coming in..." +sleep 15 +exit_if_jenkins +echo "doing it" +killall java +sudo rm -Rf ~jenkins/.minikube || echo "could not delete minikube" +sudo rm -Rf ~/jenkins/minikube-integration/* || true +sudo reboot diff --git a/hack/jenkins/windows_cleanup_and_reboot.bat b/hack/jenkins/windows_cleanup_and_reboot.bat new file mode 100644 index 0000000000..84dd6e907d --- /dev/null +++ b/hack/jenkins/windows_cleanup_and_reboot.bat @@ -0,0 +1,33 @@ +:: Copyright 2019 The Kubernetes Authors All rights reserved. +:: +:: Licensed under the Apache License, Version 2.0 (the "License"); +:: you may not use this file except in compliance with the License. +:: You may obtain a copy of the License at +:: +:: http://www.apache.org/licenses/LICENSE-2.0 +:: +:: Unless required by applicable law or agreed to in writing, software +:: distributed under the License is distributed on an "AS IS" BASIS, +:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +:: See the License for the specific language governing permissions and +:: limitations under the License. + +:: Periodically cleanup and reboot if no Jenkins subprocesses are running. + +@echo off +call :jenkins +echo waiting to see if any jobs are coming in... +timeout 30 +call :jenkins +echo doing it +taskkill /IM putty.exe +taskkill /F /IM java.exe +powershell -Command "Stop-VM minikube" +powershell -Command "Delete-VM minikube" +rmdir /S /Q C:\Users\admin\.minikube +shutdown /r + +:jenkins +tasklist | find /i /n "e2e-windows-amd64.exe">NUL +if %ERRORLEVEL% == 0 exit 1 +exit /B 0