SSHUpload

open class SSHUpload : BuildStep
fun BuildSteps.sshUpload(init: SSHUpload.() -> Unit): SSHUpload

An SSH Upload build step.

Example. Adds an SSH Upload build step with SCP transport protocol and custom timeout. Uploaded key authentication method is used.

buildType {
    // Other Build Type settings ...
    steps {
        // Other Build Steps ...
        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"
             }
         }
} }

Example. Adds an SSH Upload build step with SFTP transport protocol, custom port and disabled timeout. Default private key authentication method is used.

buildType {
    // Other Build Type settings ...
    steps {
        // Other Build Steps ...
        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:******"
             }
         }
} }

Example. Adds an SSH Upload build step with SFTP transport protocol. Custom private key authentication method is used.

buildType {
    // Other Build Type settings ...
    steps {
        // Other Build Steps ...
        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:******"
             }
         }
} }

Example. Adds an SSH Upload build step with SCP transport protocol. Password authentication method is used.

buildType {
    // Other Build Type settings ...
    steps {
        // Other Build Steps ...
        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:******"
             }
         }
} }

Example. Adds an SSH Upload build step with SCP transport protocol. SSH-Agent authentication method is used. This build step will run even if some previous build steps are failed and additional condition is met.

buildType {
    // Other Build Type settings ...
    steps {
        // Other Build Steps ...
        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"
             }
         }
} }

See also

Constructors

Link copied to clipboard
fun SSHUpload(init: SSHUpload.() -> Unit)
Link copied to clipboard
fun SSHUpload()

Types

Link copied to clipboard
sealed class AuthMethod : CompoundParam<SSHUpload.AuthMethod>
Link copied to clipboard
enum TransportProtocol : Enum<SSHUpload.TransportProtocol>

Functions

Link copied to clipboard
fun booleanParameter(    customName: String? = null,     trueValue: String? = "true",     falseValue: String? = "false"): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun clear()
Link copied to clipboard
fun clearConditions()

Deletes all configured build step conditions

Link copied to clipboard
fun <T : CompoundParam<T>> compoundParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun conditions(init: BuildStepConditions.() -> Unit = {})
Link copied to clipboard
fun <T : Parametrized> copyParamsTo(target: T): T

Copies parameters of this object to the specified target

Link copied to clipboard
open fun create(): BuildStep

Creates an instance of this build step via reflection using a no argument constructor, used during copying. Throws an error if this class doesn't have a default constructor. Subclasses can override it to create an instance without using a default constructor.

Link copied to clipboard

Will try to perform private key authentication using the given public key file with given passphrase.

Link copied to clipboard

Will try to perform private key authentication using the ~/.ssh/config settings. If no settings file exists, will try to use the ~/.ssh/rsa_pub public key file.

Link copied to clipboard
fun doubleParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun <E : Enum<E>> enumParameter(customName: String? = null, mapping: Map<E, String?>? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun findRawParam(paramName: String): Parameter?
Link copied to clipboard
fun hasParam(paramName: String): Boolean
Link copied to clipboard
fun intParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
fun param(name: String, value: String)

Adds parameter with specified name and value

Link copied to clipboard
fun password(init: SSHUpload.AuthMethod.Password.() -> Unit = {}): SSHUpload.AuthMethod.Password

Simple password authentication.

Link copied to clipboard
fun removeRawParam(paramName: String)
Link copied to clipboard
fun sshAgent(init: SSHUpload.AuthMethod.SshAgent.() -> Unit = {}): SSHUpload.AuthMethod.SshAgent

Use ssh-agent for authentication, the SSH-Agent build feature must be enabled.

Link copied to clipboard
open fun stringParameter(customName: String? = null): <ERROR CLASS><Parametrized, <ERROR CLASS><Parametrized, T?>>
Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
fun uploadedKey(init: SSHUpload.AuthMethod.UploadedKey.() -> Unit = {}): SSHUpload.AuthMethod.UploadedKey

Uses the key(s) uploaded to the project.

Link copied to clipboard
open override fun validate(consumer: ErrorConsumer)

Validates this object and reports found errors to the provided consumer

Properties

Link copied to clipboard
var authMethod: <ERROR CLASS>

An SSH authentication method.

Link copied to clipboard
var conditions: BuildStepConditions

Optional collection of build step execution conditions

Link copied to clipboard
var enabled: Boolean = true

Specifies whether the step is enabled, true by default

Link copied to clipboard
var executionMode: BuildStep.ExecutionMode

Build step execution mode

Link copied to clipboard
var id: String? = null

Optional id of the step. Usually the id is not required, however if a build configuration inherits from a template and wants to override a build step defined there, then both steps should have the same id.

Link copied to clipboard
var name: String

Build step name

Link copied to clipboard
val params: List<Parameter>
Link copied to clipboard
var port: <ERROR CLASS>

Optional. Default value: 22.

Link copied to clipboard
var sourcePath: <ERROR CLASS>

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.

Link copied to clipboard
var targetUrl: <ERROR CLASS>

Target url in form {hostname|ip_address}:path/to/target/folder.

Link copied to clipboard
var timeout: <ERROR CLASS>

Optional. Default value (seconds): 60 (0 - disable timeout).

Link copied to clipboard
var transportProtocol: <ERROR CLASS>

An SSH transfer protocol to use.

Link copied to clipboard
var type: String

Build step type