Question: I'm trying to replace our current build pipeline, currently hacked together using old-school Jenkins jobs, with a new job that uses the Jenkins pipeline plugin, and loads a `Jenkinsfile` from the project repository.

One thing that the legacy job did was set the build description to include the Mercurial hash, username and current version using the [Description setter plugin](https://wiki.jenkins-ci.org/display/JENKINS/Project+Description+Setter+Plugin), so that builds are easy to find.

Is there a way to replicate/emulate this behaviour with the Jenkins pipeline plugin?

Answer: 
Just figured it out. The pipeline job exposes a `currentBuild` global variable with writable properties. Setting the description can be done with:

```
currentBuild.description = "my new description"

```

anywhere in the pipeline script. More information in this [DZone tutorial](https://dzone.com/refcardz/continuous-delivery-with-jenkins-workflow).
I'm not sure how old it is, but I recently discovered the `buildDescription` plugin that gives you a declarative method to set the build description. 
Once installed, it's as easy as:

```
steps {
  buildDescription 'my build'
}

```

The console will show a step output:
`New run description is 'my build'`