5

I know how to notify build status using the slack notification plugin. I can seeproject - #buildnumber Success after 1 min 18 sec (Open) in my slack channel. But I want the console output to be sent to slack as well (upon failure) instead of a link. I am using free style project since I need some scripts to build my project. The purpose is that I want engineers to know the result of their build without granting them Jenkins access.

edit:

if console log can be uploaded as a text, would be also good. Other forms of 'output' would be welcome as well.

new edit:

I found the answer by myself.

2
  • Thta code is being input where?
    – jas
    Commented Nov 18, 2019 at 12:53
  • @jas under the Build section execute shell -> command
    – tikael
    Commented Nov 20, 2019 at 21:06

3 Answers 3

5

I figured it out by myself, there is no plugin needed.

build.sh &> /dev/stdout | tee jenkins.txt and then curl -F [email protected] -F channels=yourchannel -H "Authorization: Bearer your token" https://slack.com/api/files.upload

There is no '#' needed for slack channel and channel should not be private.

And if you use buils.sh | tee jenkins.log then you can't get the log from stderr.

1
  • 1
    This works great, thanks. For reference, you can post to a private channel if you create a bot, invite the bot to the private channel and use the bot token to upload the file.
    – zwessels
    Commented Jun 21, 2019 at 9:26
2

You probably want the console output to be posted as an attachment, not a message, to slack. The post to slack plugin might be what you are looking for.

The other thing you could do is create a part of the freestyle job that strips out what you want to a text file, and add that as part of the slack message attachment, in the slack plugin configuration.

1
  • have you successfully set up what you mentioned? strip output to text + slack uploader.
    – tikael
    Commented Oct 18, 2018 at 19:28
1

Posting the full stack trace tends to clog up the channel. Here are a few things you can do:

  • Send build status along with the Jenkins Job link to the Channel so Devs can come back to the link for debugging
  • Send stack trace as a file
  • Send build status as and link to channel and Stack trace info to the user who committed the code for build

Either way, Post to Slack plugin along with other plugins will help you address this need.

1
  • what are other plugins? As I mentioned, devs won't be granted jenkins access. So I need a way to show log outside of jenkins
    – tikael
    Commented Oct 19, 2018 at 5:51

Not the answer you're looking for? Browse other questions tagged or ask your own question.