Refactor cache functionality to remove common package dependency

What does this MR do?

  • Moves configuration from common package to cacheconfig package.
  • Removes common.Build dependency, which means solving some issues (like how feature flags affect config) outside of the cache package.

Why was this MR needed?

Due to cyclic dependencies, it's almost impossible to call into the cache package from elsewhere in the code base. This makes migrating to CI Functions harder.

What's the best way to test this MR?

Existing tests should pass.

I did a manual test with GCS and this simple job:

my-job:
  script:
    - echo "data" > file
  cache:
    key: cache
    paths:
      - file

What are the relevant issue numbers?

Closes #39238 (closed)

Edited by Arran Walker

Merge request reports

Loading