Skip to content

Updated builds and logs deletion section

Vlad Mihai requested to merge docs-vmihai-master-patch-52878 into master

What does this MR do?

The Delete job artifacts and logs from jobs completed before a specific date section states that all artifacts and build logs older than a given date are removed. This is not entirely true, because with_downloadable_artifacts is used to filter the builds, so only those having artifacts are handled.

This returns an array of builds.

builds_with_artifacts = Ci::Build.with_downloadable_artifacts

This, returns an Enumerator, which doesn't have the where method. Because of this, the query which sets builds_to_clear later in step 3 fails.

builds_with_artifacts =  project.builds.with_downloadable_artifacts.find_each(batch_size: 1000)

To work around this, I have

  • replaced the query in step 3 to use filter_map, which can handle Enumerator and array.
  • I have also replaced Ci::Build.with_downloadable_artifacts with Ci::Build.find_each because
    • With this all builds are selected, not only the ones that have artifacts.
    • find_each is actually find_each(batch_size: 1000) under the hood, which should perform better than e.g. all or no method.
      • I have updated the Delete job artifacts from jobs completed before a specific date to use find_each/filter_map

Question

Since find_each and find_each(batch_size: 1000) are the same, the sections which mention using batch_size to improve performance seem redundant.

Should we remove that section or replace it with something else that would help in case performance issues are encountered?

Related issues

A few customers reported our examples with batch_size don't work.

https://gitlab.zendesk.com/agent/tickets/474672

https://gitlab.zendesk.com/agent/tickets/457766

Author's checklist

If you are a GitLab team member and only adding documentation, do not add any of the following labels:

  • ~"frontend"
  • ~"backend"
  • ~"type::bug"
  • ~"database"

These labels cause the MR to be added to code verification QA issues.

Reviewer's checklist

Documentation-related MRs should be reviewed by a Technical Writer for a non-blocking review, based on Documentation Guidelines and the Style Guide.

If you aren't sure which tech writer to ask, use roulette or ask in the #docs Slack channel.

  • If the content requires it, ensure the information is reviewed by a subject matter expert.
  • Technical writer review items:
    • Ensure docs metadata is present and up-to-date.
    • Ensure the appropriate labels are added to this MR.
    • Ensure a release milestone is set.
    • If relevant to this MR, ensure content topic type principles are in use, including:
      • The headings should be something you'd do a Google search for. Instead of Default behavior, say something like Default behavior when you close an issue.
      • The headings (other than the page title) should be active. Instead of Configuring GDK, say something like Configure GDK.
      • Any task steps should be written as a numbered list.
      • If the content still needs to be edited for topic types, you can create a follow-up issue with the docs-technical-debt label.
  • Review by assigned maintainer, who can always request/require the reviews above. Maintainer's review can occur before or after a technical writer review.
Edited by Vlad Mihai

Merge request reports