Volodymyr Sereda
Volodymyr Sereda

Reputation: 33

Jenkins - Add download link to file if build fails

I'm a little new to Jenkins, and I can't seem to figure this out. I have access to a Jenkins server that uses slaves to perform build jobs.

If a build fails, it stores a generated zip archive in a persistent Workspace directory for further debugging. The zip file is generated by a python script that keeps track of only the last 3 failed builds to conserve memory (i.e. 3 failed builds will result in 3 archives in the folder, but a fourth failed build will delete the oldest archive before adding the new one).

What I'm trying to do is add a download link to a failed Jenkins Run to allow users to quickly download the zip file that was generated for that build. But I'm really confused as to how approach this!

So I guess the question is, how could I add a download link to a Jenkins Run page to a file generated during that Run if it fails?

Example usage scenario: 1. I build some code :) 2. It fails :( 3. I download the zip file (from the Run page) with the generated debug files and find the fix :) 4. Space doesn't get filled up as zip files are kept only for the last 3 builds!

Any help would be greatly appreciated! Thank you! I'm happy to provide more information if needed ^^ I am currently trying to use a system groovy script to do this, but perhaps artifacts would be more appropriate? I really can't seem to find good documentation on this!

Upvotes: 1

Views: 1117

Answers (1)

MrsTang
MrsTang

Reputation: 3119

There are built in methods in Jenkins to allow this workflow:

  • you can archive any artifact (in that case the zip) as post build step

  • data retention strategy can be configured in the job via Discard old builds (Advanced).

  • in order to send out customized mails on build failure with embedded download link you should review Email Ext Plugin; it allows you to configure individual texts for e.g. build failures where you could add the link to downloading the artifact.

Upvotes: 1

Related Questions