Gitlab CI 在作业之间传递依赖关系

Gitlab CI passing dependencies among jobs

我是 GitLab 的新手 CI。我有一个项目,其中有一个 Gitlab 项目,并且有作业生成、检测更改和编译。要求是生成作业从模板生成一些 go 文件,detectchanges 需要作用于相同的代码库,包括生成作业生成的所有更改(如下例中的 tempCreateTest/myfile.txt)并再次编译作用于相同的代码库和变化产生工作作用。我的问题是: 1. 即使使用依赖项,我也看不到生成作业生成的更改。例如 tempCreateTest/myfile.txt 未被 detect_changes 和编译作业看到 2. 当我使用 dependency 时,gitlab 究竟在哪里下载工件?

有人可以回答这个问题吗?

这是我的示例.gitlab-ci.yml

image: golang:1.11

stages:
  - generate
  - detect_changes
  - build

before_script:
  # Setup environment
  - export GOPATH=/builds/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/go
  - export GO_PROJECT_PATH=$GOPATH/src/gitlab.com/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
  - export RAW_REPO_PATH=/builds/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/.
  - mkdir -p $GO_PROJECT_PATH
  - cp -r $RAW_REPO_PATH/. $GO_PROJECT_PATH
  - cd $GOPATH
  - export GO111MODULE=on
  - cd $GO_PROJECT_PATH
  - source ci.sh # This has functions that jobs use

generate_ci:
  stage: generate
  script:
    - generate_ci_script
    - mkdir tempCreateTest/ . 
    - echo "Some text here." > tempCreateTest/myfile.txt # Stages after generate should see the changes
  artifacts:
    untracked: true

detect_changes_ci:
  stage: detect_changes
  script:
    - detect_changes_ci_script 
  dependencies:
    - generate_ci

compile_ci:
  stage: detect_changes
  script:
    - compile_ci_script
  dependencies:
    - generate_ci

您可以使用 CI artifacts or caching 来完成。请查看前面链接中的示例。