SharedResource

Adds a Shared Resource project feature which allows limiting concurrently running builds using a shared resource. Note that a shared should be defined in project settings and then enabled in reguired build configurations.

Example. Defines an infinite Shared Resource with an unlimited number of read locks. This Shared Resources then used in build configuration

project {
// ...
features {
// ...
sharedResource {
id = "InfiniteResource_1"
name = "InfiniteResource"
resourceType = infinite()
}
}

buildType {
// ...
features {
// ...
sharedResources {
// ...
readLock("InfiniteResource")
}
}
}
}

Example. Defines a quoted Shared Resource. Quota is a maximum number of read locks that can be acquired on the resource.

project {
// Other Project settings ...
features {
// Other Project Features ...
        sharedResource {
id = "Quoted_1"
name = "Quoted"
resourceType = quoted(5)
}
}
}

Example. Defines a Shared Resource with custom values.

project {
// Other Project settings ...
features {
// Other Project Features ...
        sharedResource {
id = "CustomSharedResource_1"
name = "Custom"
resourceType = customValues(
"value1",
"value2"
)
}
}
}

Constructors

Link copied to clipboard
constructor(init: SharedResource.() -> Unit = {})

Types

Link copied to clipboard
abstract class SharedResourceType

Properties

Link copied to clipboard

If Shared Resource is enabled

Link copied to clipboard
var id: String?

Project feature id, if not specified will be generated

Link copied to clipboard
var name: String?

Shared Resource name

Link copied to clipboard
Link copied to clipboard

Shared Resource type, e.g. infinite, quoted or customValues

Link copied to clipboard

Project feature type

Functions

Link copied to clipboard
fun booleanParameter(customName: String? = null, trueValue: String? = "true", falseValue: String? = "false"): DelegateProvider<Boolean?>
Link copied to clipboard
fun clear()
Link copied to clipboard
fun <T : CompoundParam<T>> compoundParameter(customName: String? = null): DelegateProvider<T>
Link copied to clipboard
fun <T : Parametrized> copyParamsTo(target: T): T

Copies parameters of this object to the specified target

Link copied to clipboard

Creates an instance of this project feature 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

Shared Resource type for resources with custom values

Link copied to clipboard
fun doubleParameter(customName: String? = null): DelegateProvider<Double>
Link copied to clipboard
fun <E : Enum<E>> enumParameter(customName: String? = null, mapping: Map<E, String?>? = null): DelegateProvider<E>
Link copied to clipboard
fun findRawParam(paramName: String): Parameter?
Link copied to clipboard
fun hasParam(paramName: String): Boolean
Link copied to clipboard

Shared Resource type for infinite resources

Link copied to clipboard
fun intParameter(customName: String? = null): DelegateProvider<Int>
Link copied to clipboard
fun param(name: String, value: String)

Adds parameter with specified name and value

Link copied to clipboard

Shared Resource type for quoted resources

Link copied to clipboard
fun removeRawParam(paramName: String)
Link copied to clipboard
open fun stringParameter(customName: String? = null): DelegateProvider<String>
Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open override fun validate(consumer: ErrorConsumer)

Validates this object and reports found errors to the provided consumer