Jenkins Concepts
External
Internal
Agent
An agent, also known as a "build agent", is the runtime that executes the build. Agents to execute a build may be selected with a Label Expression, specified in the job configuration.
Docker Plugin Agent
Label
Slave
Job
Jobs can be created from the UI and they show up on the dashboard, in the main table. A job state is maintained in $JENKINS_HOME/jobs/<job-name>. The job directory contains a config.xml and a "builds" subdirectory, which contains build state. The state include links to "lastFailedBuild", "lastStableBuild", "lastSuccessfulBuild", "lastUnstableBuild" and "lastUnsuccessfulBuild".
A job can be configured with Jenkins -> job -> Configure.
A job's configuration contains the following:
- General Configuration
- Source Code Management configuration
- Build Triggers
- Build Environment
- Build definition - usually a shell command.
- Post-build actions.
Each job has its own security context.
Build
A build belongs to a job.
Items
Freestyle Project
Pipeline
A Jenkins Pipeline is a suite of plugins that implement a continuous delivery pipeline. When integrated with OpenShift, the Jenkins Pipeline functionality provides the engine for OpenShift Pipeline builds. More details about OpenShift Jenkins pipeline are available here:
More details about the pipeline syntax are available here:
Build Environment
Distributed Build
Plugin
The list of installed plugins can be obtained on the console Jenkins -> Manage Jenkins -> Manage Plugins -> Installed.
Interesting Jenkins Plugins
Server Administration Concepts
Instance State
A Jenkins instance state consists of the following:
- The WAR file
- Plugins.
- Settings
- Build logs
- Artifacts archives
- Jobs
Everything mentioned above is stored under $JENKINS_HOME. It is sufficient to archive this directory to make a back up of the instance. Similarly, restoring the data is just replacing the contents of the JENKINS_HOME directory from a back up.
The WAR file is stored under ${JENKINS_HOME}/war. The location can be overridden with --webroot=<new-location>. The WAR is expanded during the startup sequence.
The plugins are stored under ${JENKINS_HOME}/plugins. The location can be overridden with --pluginroot =<new-location>.