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.