kotlin-script-runner-server/kotlin-dsl/KotlinScriptFile.xml (100 lines of code) (raw):
<?xml version="1.0" encoding="UTF-8"?>
<dsl-extension kind="buildStep" type="kotlinScript" generateDslJar="true" applicable="params['scriptType'] == 'file'">
<class name="KotlinScriptFileBuildStep">
<description>
A build step running a Kotlin script with from a specified file
</description>
</class>
<function name="kotlinFile">
<description>
Adds a build step running a Kotlin script from a specified file
@see KotlinScriptFileBuildStep
</description>
</function>
<init>
<param name="scriptType" value="file"/>
</init>
<params>
<param name="teamcity.build.workingDir" dslName="workingDir">
<description>
[Build working directory](https://www.jetbrains.com/help/teamcity/?Build+Working+Directory) for the script,
specify it if it is different from the [checkout directory](https://www.jetbrains.com/help/teamcity/?Build+Checkout+Directory).
</description>
</param>
<param name="scriptFile" dslName="path" mandatory="true">
<description>
A path to a file with .main.kts extension
</description>
</param>
<param name="kotlinPath" dslName="compiler">
<description>
Path to Kotlin compiler
</description>
</param>
<param name="kotlinArgs" dslName="arguments">
<description>
Space-separated list of additional arguments for Kotlin script
</description>
</param>
<param name="target.jdk.home" dslName="jdkHome">
<description>
Custom [JDK](https://www.jetbrains.com/help/teamcity/?Predefined+Build+Parameters#PredefinedBuildParameters-DefiningJava-relatedEnvironmentVariables) to use.
The default is JAVA_HOME environment variable or the agent's own Java.
</description>
</param>
<param name="jvmArgs">
<description>
Space-separated list of additional arguments for JVM
</description>
</param>
</params>
<examples>
<example>
<description>
Adds a Kotlin script build step with [default Kotlin compiler](https://www.jetbrains.com/help/teamcity/?Kotlin+Script#Prerequisites) and default JVM.
</description>
<code>
kotlinScript {
name = "My Kotlin Script step"
path = "script.kts"
}
</code>
</example>
<example>
<description>
Adds a Kotlin script build step with [bundled Kotlin compiler](https://www.jetbrains.com/help/teamcity/?Kotlin+Script#Prerequisites)
and custom JDK is set to the [environment variable](https://www.jetbrains.com/help/teamcity/?Using+Build+Parameters) value with additional parameter.
Additional agruments are passed to the Kotlin script with a reference to the [configuration parameter](https://www.jetbrains.com/help/teamcity/?Using+Build+Parameters) value.
Custom [working directory](https://www.jetbrains.com/help/teamcity/?Build+Working+Directory) is provided.
</description>
<code>
kotlinScript {
name = "My Kotlin Script step"
workingDir = "scripts/"
path = "script.kts"
compiler = "%teamcity.tool.kotlin.compiler.bundled%"
arguments = "%myscript.params%"
jdkHome = "%env.JDK_15_0%"
jvmArgs = "-Xmx2048m"
}
</code>
</example>
<example>
<description>
Adds a Kotlin script build step with custom Kotlin compiler
and custom JDK with additional parameter.
Custom [working directory](https://www.jetbrains.com/help/teamcity/?Build+Working+Directory) is provided.
</description>
<code>
kotlinScript {
name = "My Kotlin Script step"
workingDir = "scripts/"
path = "script.kts"
compiler = "path/to/kotlin/compiler"
jdkHome = "path/to/jdk"
jvmArgs = "-Xmx2048m"
}
</code>
</example>
</examples>
</dsl-extension>