All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pl.wrzasq.cform.macro.pipeline.PipelineAction.kt Maven / Gradle / Ivy

There is a newer version: 1.4.0
Show newest version
/**
 * This file is part of the pl.wrzasq.cform.
 *
 * @license http://mit-license.org/ The MIT license
 * @copyright 2021 © by Rafał Wrzeszcz - Wrzasq.pl.
 */

package pl.wrzasq.cform.macro.pipeline

/**
 * Pipeline action definition.
 */
interface PipelineAction {
    /**
     * Action identifier.
     */
    val name: String

    /**
     * Input artifacts names.
     */
    val inputs: Set

    /**
     * Provided artifacts.
     */
    val outputs: Set

    /**
     * Actions on which current one depends.
     */
    val dependencies: Set

    /**
     * Variables namespace.
     */
    var namespace: String?

    /**
     * Execution order within stage.
     */
    var runOrder: Int?

    /**
     * Compiles action.
     *
     * @param manager Pipeline references resolver.
     */
    fun compile(manager: PipelineManager) {}

    /**
     * Builds template structure.
     *
     * @return Template fragment.
     */
    fun buildDefinition(): Map
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy