blob: f016ff85f079cc6362dc94acac20e1d46ef3b28b [file] [log] [blame]
<!-- vim: set expandtab ts=4 sw=4 : -->
<!-- targets in this file should be called from the parent directory -->
<project basedir="../..">
<import file="../../config/config.xml" />
<!-- build the CLI python package for distribution -->
<target name="buildCLI">
<var file="whisk.properties" />
<!-- generate default.props in source directory.
someday this should be nuked - legacy of old process -->
<exec executable="/bin/bash" failonerror="true" output="${openwhisk.home}/tools/cli/default.props">
<arg line="'${openwhisk.home}/tools/cli/generateDefaultProps.sh'" />
<arg line="'${basedir}'" />
</exec>
<!-- copy files needed to build image to a scratch space -->
<mkdir dir="${cli.build.dir}" />
<!-- make a nested build dir to match gradle -->
<mkdir dir="${cli.build.dir}/build/tmp" />
<copy todir="${cli.build.dir}">
<fileset dir="${openwhisk.home}/tools/cli">
<include name="Dockerfile" />
</fileset>
</copy>
<copy todir="${cli.build.dir}/build/tmp">
<fileset dir="${openwhisk.home}/tools/cli/packagescripts" />
</copy>
<copy todir="${cli.build.dir}/build/tmp/openwhisk">
<fileset dir="${openwhisk.home}/tools/cli">
<include name="wsk" />
<include name="*.py" />
</fileset>
</copy>
<!-- generate default.props -->
<exec executable="/bin/bash" failonerror="true" output="${cli.build.dir}/build/tmp/openwhisk/default.props">
<arg line="'${openwhisk.home}/tools/cli/generateDefaultProps.sh'" />
<arg line="'${basedir'}" />
</exec>
<!-- Python packaging expects .py extensions. -->
<move file="${cli.build.dir}/build/tmp/openwhisk/wsk" tofile="${cli.build.dir}/build/tmp/openwhisk/wsk.py" />
<!-- Need this file in the right place so it looks like a Pyton package. -->
<move file="${cli.build.dir}/build/tmp/__init__.py" todir="${cli.build.dir}/build/tmp/openwhisk" />
<!-- build package for distribution -->
<exec executable="/bin/bash" failonerror="true">
<arg line="'${openwhisk.home}/tools/docker/dockerWithRetry.sh' ${docker.timeout.long}" />
<arg line="build -t whisk/cli '${cli.build.dir}'" />
</exec>
<exec executable="docker" failonerror="false" output="/dev/null" error="/dev/null">
<arg line="${docker.tls.cmd}" />
<arg line="rm -f cli" />
</exec>
<exec executable="docker" failonerror="true">
<arg line="${docker.tls.cmd}" />
<arg line="run -d --name cli whisk/cli" />
</exec>
<exec executable="docker" failonerror="true">
<arg line="${docker.tls.cmd}" />
<arg line="cp cli:/cli/dist '${cli.build.dir}'" />
</exec>
<exec executable="docker" failonerror="false">
<arg line="${docker.tls.cmd}" />
<arg line="rm -f cli" />
</exec>
</target>
</project>