jenkinsfile

What is Jenkins pipeline ?
Is a suite of plugins which supports implementing and integrating continuous delivery pipelines into Jenkins.Pipeline supports two syntaxes, Declarative (introduced in Pipeline 2.5) and Scripted Pipeline. Both of which support building continuous delivery pipelines. Both may be used to define a Pipeline in either the web UI or with a Jenkinsfile, though it’s generally considered a best practice to create a Jenkinsfile and check the file into the source control repository.
Jenkinsfile is a text file that contains the definition of a Jenkins Pipeline and is checked into source control
Below is a sample structure of a jenkinsfile





















Agent:  The agent section specifies where the entire Pipeline, or a specific stage, will execute in the Jenkins environment depending on where the agent section is placed. The section must be defined at the top-level inside the pipeline block, but stage-level usage is optional. e.g in the above image Execute the Pipeline, or stage, on an agent available in the Jenkins environment with the provided label.
Agent can be docker image also:
agent {
    docker {
        image 'maven:3-alpine'
        label 'my-defined-label'
        args  '-v /tmp:/tmp'
    }

}

Stage: Contain a sequence of one or more stage directives, the stages section is where the bulk of the "work" described by a Pipeline will be located. At a minimum it is recommended that stages contain at least one stage directive for each discrete part of the continuous delivery process, such as Build, Test, and Deploy.
Step: The steps section defines a series of one or more steps to be executed in a given stage directive.
Environment: The environment directive specifies a sequence of key-value pairs which will be defined as environment variables for the all steps, or stage-specific steps, depending on where the environment directive is located within the Pipeline.
Parameters: The parameters directive provides a list of parameters which a user should provide when triggering the Pipeline. The values for these user-specified parameters are made available to Pipeline steps via the params object. Parameters could of type String or booleanParam
e.g.
string(name: 'TestType', defaultValue: 'Sanity_Test', description: 'Filter for unit tests by test trait')
parameters { booleanParam(name: 'DEBUG_BUILD', defaultValue: true, description: '') }
Triggers: The triggers directive defines the automated ways in which the Pipeline should be re-triggered.
e.g.  trigger can be written below the agent
triggers {
        cron('5 10 * * *')

    }

Comments

Post a Comment

Popular Posts