Document pipeline best practices

Document our preferences (ie extends over anchors) to help reinforce what we’ve found are best practices to support performance and maintainability.

Plan:

  • Determine where preferences would be documented at (handbook or product docs). I’m leaning towards the handbook as it applies to GitLab Company specific information.
  • Identify what configuration areas have tradeoffs that would warrant an opinionated view
    • Extends preferred over anchors
    • Comments for all base job configurations describing their intended usage
    • Inheritance depth limit
    • Naming conventions (colons, spaces, dashes, underscores)
    • Specify keys which should have a preferences as defined at the job vs. inherited job configuration levels
  • Pull out existing examples of best practices from docs and usage https://docs.gitlab.com/ee/ci/caching/index.html#good-caching-practices