| /* |
| * 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. |
| */ |
| |
| def licenseOutput = "${buildDir}/output" |
| |
| docker { |
| name "golicenses-${sdkName}" |
| dockerfile file('../Dockerfile') |
| files '../get-licenses.sh' |
| noCache false |
| buildArgs(['sdk_location': "github.com/apache/beam/sdks/${sdkName}/container"]) |
| } |
| |
| // The mkdir happens at configuration time to allow dockerRun volume to be declared. |
| mkdir "${licenseOutput}" |
| |
| dockerRun { |
| // Add a random number to the running container name to avoid collisions. |
| name "license-container-${sdkName}-" + (new Random().nextInt()) |
| image "golicenses-${sdkName}:latest" |
| volumes "${licenseOutput}": '/output' |
| daemonize false |
| clean true |
| } |
| tasks.dockerRun.dependsOn 'docker' |
| |
| task createLicenses { |
| outputs.cacheIf { true } |
| outputs.file("$buildDir/output/licenses/list.csv") |
| // Aggressively cache, to avoid slowness and docker run collisions. |
| if (!file("$buildDir/output/licenses/list.csv").exists()) { |
| dependsOn 'dockerRun' |
| } |
| } |