SharedResources

Adds a Shared Resource build feature which allows limiting concurrently running builds using a shared resource. Note that corrensponding Shared Resources project feature should be defined.

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 = "SharedResource_1"
name = "InfiniteResource"
resourceType = infinite()
}
}

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

Example. Adds a Shared Resources build feature which enables different types of locks.

buildType {
// Other Build Type settings ...
features {
// Other Build Features ...
        sharedResources {
lockSpecificValue("Custom", "value1")
readLock("InfiniteResource")
writeLock("Quoted")
}
}
}

Constructors

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

Properties

Link copied to clipboard

Specifies whether the feature is enabled, true by default

Link copied to clipboard
var id: String?

Build feature id, if not specified will be generated

Link copied to clipboard
Link copied to clipboard

Build 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
open fun create(): BuildFeature

Creates an instance of this build 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
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
fun intParameter(customName: String? = null): DelegateProvider<Int>
Link copied to clipboard
fun lockAllValues(sharedResource: SharedResource)
fun lockAllValues(sharedResourceName: String)

Adds a lock to all custom values in specified shared resource

Link copied to clipboard
fun lockAnyValue(sharedResource: SharedResource)
fun lockAnyValue(sharedResourceName: String)

Adds a lock to any custom values in specified shared resource

Link copied to clipboard
fun lockSpecificValue(sharedResource: SharedResource, valueToLock: String)
fun lockSpecificValue(sharedResourceName: String, valueToLock: String)

Adds a lock to specific custom value in specified shared resource

Link copied to clipboard
fun param(name: String, value: String)

Adds parameter with specified name and value

Link copied to clipboard
fun readLock(sharedResource: SharedResource)
fun readLock(sharedResourceName: String)

Adds a read lock to specified shared resource

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

Link copied to clipboard
fun writeLock(sharedResource: SharedResource)
fun writeLock(sharedResourceName: String)

Adds a write lock to specified shared resource