blob: 06b1ea918c7f8df90054af587158fff2fa2dcabc [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.
*/
plugins { id 'org.apache.beam.module' }
applyGoNature()
description = "Apache Beam :: SDKs :: Python :: Container"
int min_python_version=8
int max_python_version=11
configurations {
sdkSourceTarball
sdkHarnessLauncher
}
dependencies {
sdkSourceTarball project(path: ":sdks:python", configuration: "distTarBall")
}
goBuild {
goTargets = '*.go' // only build the immediate directory.
outputLocation = './build/target/launcher/${GOOS}_${GOARCH}/boot'
}
tasks.register("buildAll") {
dependsOn ':sdks:python:container:py38:docker'
dependsOn ':sdks:python:container:py39:docker'
dependsOn ':sdks:python:container:py310:docker'
dependsOn ':sdks:python:container:py311:docker'
}
for(int i=min_python_version; i<=max_python_version; ++i) {
String min_version = "3" + min_python_version
String cur = "3" + i
String prev = "3" + (i-1)
tasks.register("push" + cur) {
if (cur != min_version) {
// Enforce ordering to allow the prune step to happen between runs.
// This will ensure we don't use up too much space (especially in CI environments)
mustRunAfter(":sdks:python:container:push" + prev)
}
dependsOn ':sdks:python:container:py' + cur + ':docker'
doLast {
if (project.hasProperty("prune-images")) {
exec {
executable("docker")
args("system", "prune", "-a", "--force")
}
}
}
}
}
tasks.register("pushAll") {
dependsOn ':sdks:python:container:push38'
dependsOn ':sdks:python:container:push39'
dependsOn ':sdks:python:container:push310'
dependsOn ':sdks:python:container:push311'
}
tasks.register("generatePythonRequirementsAll") {
dependsOn ':sdks:python:container:py38:generatePythonRequirements'
dependsOn ':sdks:python:container:py39:generatePythonRequirements'
dependsOn ':sdks:python:container:py310:generatePythonRequirements'
dependsOn ':sdks:python:container:py311:generatePythonRequirements'
}
artifacts {
sdkHarnessLauncher file: file('./build/target/launcher'), builtBy: goBuild
}