Matthias M
Matthias M

Reputation: 14930

Add Parameter Value in Message of Jenkins Office 365 Connector

I use the Jenkins Office 365 Connector and it sends messages of the build status to MS Teams as expected.

Now I want to add the value of a Jenkins job parameter to the message.

My usecase: I use a single job to deploy several services. I want to know in the message which service was deployed.

  Notification from Dev_Deploy
  Latest status of build #43

  Status
  Build Success

  Remarks
  Started by user XXX

  Service
  service-abc

I've seen in the Advanced configuration that there are Macros and Fact Definitions. Unfortunately there is no documentation in the plugin docs. Perhaps this configuration could help?

Upvotes: 8

Views: 14050

Answers (2)

jim owens
jim owens

Reputation: 51

In order to get the repository data, you can follow instructions to create a checkout snippet through the Jenkins UI in the configuration.

Jenkins-snippet-generator

Once you input the correct URL, browser, and so on, you may invoke the office365ConnectorSend plugin. You may adapt the card sent by passing the factDefinitions attribute an array of [name,template] objects as outlined in Jenkins Docs. You can find an example in the open-source code readme.

there are some defaulted add-ons, but this should set you on the correct path.

Here is an example of my office365ConnectorSend:

office365ConnectorSend (
    webhookUrl: "${webhookURL}",
    color: "${currentBuild.currentResult} == 'SUCCESS' ? '00ff00' : 'ff0000'",
    factDefinitions:[
        [ name: "Commit Message", template: "${commit_message}"],
        [ name: "Pipeline Duration", template: "${currentBuild.durationString.minus(' and counting')}"]
    ]
)

Upvotes: 1

Matthias M
Matthias M

Reputation: 14930

There is no option to customize the message in the jenkins GUI.

But a custom message can be specified in the pipeline script:

steps {
    // some instructions here
    office365ConnectorSend webhookUrl: 'https://outlook.office.com/webhook/123456...',
        message: 'Application has been [deployed](https://uat.green.biz)',
        status: 'Success',
        color: '#0000FF'           
}

Hint: The status color is not automatically set. So you have to set the color depending on the status.

Official documentation

Upvotes: 7

Related Questions