Search code examples
pythonxmlcontinuous-integrationcruisecontrolbuild-script

Passing Variables into Python file via CruiseControl


I have a CruiseControl project that executes a file build.py, whether it is nightly or CI. I would like to throw up some kind of flag in my build script that can determine which function to call, so I don't have to have two .py files that do essentially the same thing.

Is it possible to pass in variables or parameters through CruiseControl when executing a .py file?

<project name="x" default="build">
<target name="build-ci">
    <exec executable="python" failonerror="true">
        <arg value="build-cc.py" />
        <arg value="$(label)" />
    </exec>
</target>

<project name="x-nightly" default="build">
    <target name="build-nightly">
        <exec executable="python" failonerror="true">
            <arg value="build-cc.py" />
            <arg value="$(label)" />
        </exec>
    </target>
</project>

Solution

  • You can pass properties into ant from cruisecontrol. build-type will be a property in your ant script.

    <schedule interval="${schedule_interval.seconds}">
        <ant anthome="${anthome.dir}" buildfile="${buildfiles.dir}${antbuild.file}" target="my-ant-target" uselogger="true">
            <property name="build-type" value="nightly"/>               
        </ant>
    </schedule>
    

    So if you have two cruisecontrol projects, one for the nightly and one for the CI, they could each pass in a different value for build-type.

    Your question is hard to understand for me though. Could you post some of your cruisecontrol script?