gitlab-ci - 动态设置gitlab-ci cache.key

标签 gitlab-ci

有一种方法可以动态设置缓存:key:,如下所示:

cache:
    key: if $CI_PIPELINE_SOURCE -eq 'merge_request_event' { "MR_$CI_MERGE_REQUEST_TRAGET_BRANCH_NAME_CACHE" } else { "PUSH_$CI_COMMIT_REF_NAME_CACHE" }

或者也许有一种方法可以动态定义 pipile 变量:

variables:
    CACHE_KEY: if $CI_PIPELINE_SOURCE -eq 'merge_request_event' { "MR_$CI_MERGE_REQUEST_TRAGET_BRANCH_NAME_CACHE" } else { "PUSH_$CI_COMMIT_REF_NAME_CACHE" }                            

cache:
    key: $CACHE_KEY

最佳答案

您正在寻找的是 rules check ,就像这样:

  variables:
    //Your default value
    CACHE_KEY: "PUSH_$CI_COMMIT_REF_NAME_CACHE"
  rules:
    - if: if $CI_PIPELINE_SOURCE == 'merge_request_event'
      //Override based on the above condition 
      variables:
        CACHE_KEY: "MR_$CI_MERGE_REQUEST_TRAGET_BRANCH_NAME_CACHE"

关于gitlab-ci - 动态设置gitlab-ci cache.key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68528704/

相关文章:

java - 如何使用 Gitlab CI 构建 Java Maven 项目?

gitlab-ci - 有什么办法可以匹配gitlab中子目录下的所有文件吗?

reactjs - 我可以将环境变量从 Gitlab .gitlab-ci.yml 传递到 React 应用程序吗?

docker - 如何使用 docker 在 Gitlab CI 中执行 gitversion?

continuous-integration - Gitlab CI/CD 仅在预定管道上的 gitlab-ci.yml 文件中触发单个阶段

运行 helm 命令时出现 Gitlab 问题 - 错误 : unknown command "sh" for "helm"

gitlab - 使用 appium 为移动自动化设置 gitlab cicd?

docker - 使用env vars和GitlabCI构建一个React Docker镜像

git - 无法从 Docker 中的 GitLab CI 克隆 repo

javascript - 执行测试用例时npm : not found error in gitlab-ci. yml文件