action #9544

Updated by okurz about 8 years ago

## user stories 
 * As a QA SLE product manager I want to be able to review the results from older builds for documentation reasons like I am used to with testopia 
 * As an openQA instance administrator I want to keep complete results only for "important builds" available in the live instance of openQA to use only reasonable amount of disk space 

 ## acceptance criteria 
 * tagged builds have a special mark making them distinguishable from other builds (e.g. a star icon) 
 * tagged builds (along with all test results) are not deleted by tidy up scripts 

 ## tasks 
 1. tag icon on group overview on important build 
  * *Given* 'group_overview' page 
  * *When* user creates comment with `tag:<build_ref>:important` 
  * *Then* on page 'group_overview' rendering icon is shown on `important` builds 

 2. mark build as non-important build 
  * *Given* a comment `tag:<build_ref>:important` exists on a job group comments 
  * *When* user creates another comment with `tag:<build_ref>:-important` 
  * *Then* on page 'group_overview' build `<build_ref>` is *not* shown as `important` 

 3. no cleanup of important builds 
  * *Given* a comment `tag:<build_ref>:important` exists on a job group comments 
  * *When* GRU cleanup task is run 
  * *And* job OR job_group OR asset linked TODO what to build which is marked as important by comment as above 
  * *Then* "important builds" are skipped from cleanup 

 ### Optional 
 1. save important flag in job groups table 
  * *Given* a logged user and on the group_overview page of any product 
  * *When* user creates comment with `tag:<build_ref>:important` 
  * *Then* save flag `important` in database table job_groups do to accomplish this? 

 ## further explanation 

 We need to implement Build tagging so we can identify when product builds (and their test results) are important - betas, alphas, GMCs, etc 

 This needs to be shown on the Dashboard, as well as used by any tidy up scripts (we never want to delete any test results from tagged builds) 

 * Every job within a build should be considered important -> no need to distinguish last jobs and retries or similar 
 * No need to preserve the group overview as shown when the build was declared important -> no need to save information on "last jobs". Alternative approach to save this information: Save the rendered HTML page, e.g. could be saved as PDF/A and hashed