blob: 876c3991041a21c5c75176e57f067d1521a6a7ed [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
import CommonJobProperties as commonJobProperties
import static PythonTestProperties.ALL_SUPPORTED_VERSIONS
// These jobs list details about each beam runner, to clarify what software
// is on each machine.
def nums = 1..16
nums.each {
def machine = "apache-beam-jenkins-${it}"
job("beam_Inventory_${machine}") {
description("Run inventory on ${machine}")
// Set common parameters.
commonJobProperties.setTopLevelMainJobProperties(delegate)
// Sets that this is a cron job.
commonJobProperties.setCronJob(delegate, '45 6,18 * * *')
// Allows triggering this build against pull requests.
commonJobProperties.enablePhraseTriggeringFromPullRequest(
delegate,
"Machine Inventory ${machine}",
"Run Inventory ${machine}")
parameters {
nodeParam('TEST_HOST') {
description("Select test host ${machine}")
defaultNodes([machine])
allowedNodes([machine])
trigger('multiSelectionDisallowed')
eligibility('IgnoreOfflineNodeEligibility')
}
stringParam {
name("tmp_unaccessed_for")
defaultValue("48")
description("Files from /tmp dir that were not accessed for last `tmp_unaccessed_for` hours will be deleted.")
trim(true)
}
}
steps {
shell('ls /home/jenkins/tools')
shell('ls /home/jenkins/tools/*')
shell('python --version || echo "python not found"')
shell('python3 --version || echo "python3 not found"')
ALL_SUPPORTED_VERSIONS.each { version ->
shell("python${version} --version || echo \"python${version} not found\"")
}
shell('/home/jenkins/tools/maven/latest/mvn -v || echo "mvn not found"')
shell('/home/jenkins/tools/gradle4.3/gradle -v || echo "gradle not found"')
shell('gcloud -v || echo "gcloud not found"')
shell('kubectl version || echo "kubectl not found"')
ALL_SUPPORTED_VERSIONS.each { version ->
def versionSuffix = version.replace('.', '')
shell("virtualenv -p python${version} test${versionSuffix} && . ./test${versionSuffix}/bin/activate && python --version && deactivate || echo \"python ${version} not found\"")
}
shell('echo "Maven home $MAVEN_HOME"')
shell('env')
shell('docker system prune --all --filter until=24h --force')
shell('echo "Current size of /tmp dir is \$(sudo du -sh /tmp)"')
shell('echo "Deleting files accessed later than \${tmp_unaccessed_for} hours ago"')
shell('sudo find /tmp -type f -amin +\$((60*\${tmp_unaccessed_for})) -print -delete')
shell('echo "Size of /tmp dir after cleanup is \$(sudo du -sh /tmp)"')
}
}
}