Custom plugin to clean history

We feel that the current ways to clean up historical builds are not really suited for iterative development.
After 2 years of usage, our server storage is almost 200GB.
We are using agile methods and use a 2 week iterations. We would like to keep the last successful build of every iteration.
I could not find anything builtin to do this.
Is there an extension point to create custom history clean up plugin?
Would you entertain this as a valuable feature of the core product?

Thanks again for such [almost :-)] awesome product!

Jacques

5 comments
Comment actions Permalink

Hello,

  I suppose you can simply pin the last successful build of each iteration and to have an aggressive cleanup policy (say, keep successful builds for the last 1-2 weeks).
  Pinned builds are never removed by cleanup.

  Would this work for you?

  Regards,
  KIR

0
Comment actions Permalink

I was thinking of something more automatic.
I have tried to do this but I constantly forget :-(

0
Comment actions Permalink

The question is how would you identify the last successful build of the iteration. Simply time-based?
If so, I'd suggest writing a simple TeamCity plugin which would pin builds according your rules.

What do you think?

0
Comment actions Permalink

That sounds good.
How do you propose I do that?
I see 2 ways to do it:

  1. The plugin runs every 2 weeks (or whatever the frequency is) and access the list of builds picking the last successful one.
  2. The plugin runs for every builds and move a tag on every new successful build within the iteration.



The tricky part is that the end date of an iteration needs to be on a per project basis (not all teams have the same schedule). What would this entains? Can the project admin pages be extended?

Finally is it possible for a plugin to tag builds as well as pin them?

Jacques

0
Comment actions Permalink

Hello,

   TeamCity provides a way to keep per-project settings for plugins. Unfortunately, we don't have a dedicated way to integrate into TeamCity administration UI .
   But, you can use general-purpose web extension points ALL_PAGES_HEADER and ALL_PAGES_FOOTER to integrate some UI to TeamCity.

   You can also add your own controllers and have your own pages in TeamCity (see the link above).

   For the start, you can skip WebUI and use manual editing of server config to change your settings.

   Regarding the implementation, I think that tag/pin each last successful build of the iteration is more robust approach. The only thing to configure in this case is the start date of the iteration and a number of days per iteration.

   Hope this helps,
  KIR

0

Please sign in to leave a comment.