Skip to main content

Deleting Old Outputs and Artifacts

QA-Board lets you erase old outputs after a period of time.

What data will not be deleted​

Outputs from commits that are either:

  • Recent (more info below)
  • On the project.reference_branch from qaboard.yaml.
  • Are on a commit/tag/branch listed as a project.milestones in qaboard.yaml.
  • Are a milestone defined from QA-Board's UI.

Files "Exported" from QA-Board's UI are never deleted. You can do it yourself if needed. TODO: track them at least!

caution

QA-Board will set as a commit's branch the first it was seen on. If you merge with fast-forward rebased branches, then this information will not be what you expect.

Configuring garbage collection​

Data can be erased after a period of time where the commit has no new outputs.

qaboard.yaml
storage:
garbage:
after: 1month

after: supports human-readable values like 2weeks, 1year, 3months...

note

TODO Right now we only clean data for repositories that have an integration with Gitlab.

Recovering lost data?​

Well, you won't be able to do that. What you should try to do is make everything reproducable.

  • Define your whole environment as code. Make sure your commits contain 100% of what is needed for your code to run. Tools you can use include docker+Dockerfile, etc.
  • Make it easy to re-trigger your CI, so that it's straightfoward to re-builds, re-run your tests, and uploads artifacts to QA-Board.
  • If necessary, make it also very easy to run manually something like
git checkout $hexsha
make
qa save-artifacts
qa batch my-batch

Deleting commit artifacts​

Artifacts are not deleted by default, you have to ask for it:

qaboard.yaml
storage:
garbage:
after: 1month
artifacts:
delete: true

If you want to keep some artifacts (maybe "small" coverage reports defined as coverage_report: ... in qaboard.yaml's artifacts)

storage:
garbage:
after: 1month
artifacts:
delete: true
keep:
- coverage_report
# also supports relative artifacts paths, e.g.
- build/my_binary

Notes:

  • The settings that are used are those in the latest commit of the reference_branch defined in qaboard.yaml
  • If you change those settings, artifacts for already deleted commits don't get deleted.
  • When a qa run uses a commit that was deleted, or if you upload manifests for a deleted commit, it is marked as undeleted.