kotlin-dsl/SshDeployer.xml (162 lines of code) (raw):

<?xml version="1.0" encoding="UTF-8"?> <dsl-extension kind="buildStep" type="ssh-deploy-runner" generateDslJar="true"> <class name="SSHUpload"> <description> An SSH Upload build step. </description> </class> <function name="sshUpload"> <description> Adds an SSH Upload build step. @see SSHUpload </description> </function> <params> <param name="jetbrains.buildServer.deployer.ssh.transport" dslName="transportProtocol" type="TransportProtocol" mandatory="true"> <description> An SSH transfer protocol to use. </description> </param> <param name="jetbrains.buildServer.deployer.sourcePath" dslName="sourcePath" mandatory="true"> <description> Newline- or comma-separated paths to files/directories to be deployed. Ant-style wildcards like dir/**/*.zip and target directories like *.zip => winFiles,unix/distro.tgz => linuxFiles, where winFiles and linuxFiles are target directories, are supported. </description> </param> </params> <types> <enum name="TransportProtocol"> <option name="SFTP" value="jetbrains.buildServer.deployer.ssh.transport.sftp"/> <option name="SCP" value="jetbrains.buildServer.deployer.ssh.transport.scp"/> </enum> </types> <examples> <example> <description> Adds an SSH Upload build step with SCP transport protocol and custom timeout. [Uploaded key authentication method](https://www.jetbrains.com/help/teamcity/?SSH+Upload) is used. </description> <code> sshUpload { name = "My SSH Upload build step" transportProtocol = SSHUpload.TransportProtocol.SCP sourcePath = """ dir/**/*.zip *.zip => winFiles unix/distro.tgz => linuxFiles """.trimIndent() targetUrl = "hostname:path/to/target/folder" timeout = 30 authMethod = uploadedKey { username = "username" passphrase = "credentialsJSON:******" key = "id_rsa" } } </code> </example> <example> <description> Adds an SSH Upload build step with SFTP transport protocol, custom port and disabled timeout. [Default private key authentication method](https://www.jetbrains.com/help/teamcity/?SSH+Upload) is used. </description> <code> sshUpload { name = "My SSH Upload build step" transportProtocol = SSHUpload.TransportProtocol.SFTP sourcePath = """ dir/**/*.zip *.zip => winFiles unix/distro.tgz => linuxFiles """.trimIndent() targetUrl = "hostname:path/to/target/folder" port = 2222 timeout = 0 authMethod = defaultPrivateKey { username = "username" passphrase = "credentialsJSON:******" } } </code> </example> <example> <description> Adds an SSH Upload build step with SFTP transport protocol. [Custom private key authentication method](https://www.jetbrains.com/help/teamcity/?SSH+Upload) is used. </description> <code> sshUpload { name = "My SSH Upload build step" transportProtocol = SSHUpload.TransportProtocol.SFTP sourcePath = """ dir/**/*.zip *.zip => winFiles unix/distro.tgz => linuxFiles """.trimIndent() targetUrl = "hostname:path/to/target/folder" authMethod = customPrivateKey { keyFile = "path/to/key/file" username = "username" passphrase = "credentialsJSON:******" } } </code> </example> <example> <description> Adds an SSH Upload build step with SCP transport protocol. [Password authentication method](https://www.jetbrains.com/help/teamcity/?SSH+Upload) is used. </description> <code> sshUpload { name = "My SSH Upload build step" transportProtocol = SSHUpload.TransportProtocol.SCP sourcePath = """ dir/**/*.zip *.zip => winFiles unix/distro.tgz => linuxFiles """.trimIndent() targetUrl = "hostname:path/to/target/folder" authMethod = password { username = "username" password = "credentialsJSON:******" } } </code> </example> <example> <description> Adds an SSH Upload build step with SCP transport protocol. [SSH-Agent authentication method](https://www.jetbrains.com/help/teamcity/?SSH+Upload) is used. This build step will run even if some previous build steps are failed and additional condition is met. </description> <code> sshUpload { name = "My SSH Upload build step" executionMode = BuildStep.ExecutionMode.RUN_ON_FAILURE conditions { equals("teamcity.build.branch", "release") } transportProtocol = SSHUpload.TransportProtocol.SCP sourcePath = """ dir/**/*.zip *.zip => winFiles unix/distro.tgz => linuxFiles """.trimIndent() targetUrl = "hostname:path/to/target/folder" authMethod = sshAgent { username = "username" } } </code> </example> </examples> </dsl-extension>