Артефакты могут создаваться заданиями сборки из одного этапа и использоваться заданиями сборки из следующего этапа.Таким образом, before_script запускается после восстановления артефактов, созданных на предыдущем этапе для текущего этапа.
Таким образом, следующий файл .gitlab-ci.yml
stages:
- build
- test
before_script:
- echo "before_script"
- ls
build_artifacts:
stage: build
tags:
- docker
script:
- echo "build_artifacts"
- touch build_output
artifacts:
paths:
- build_output
test_artifacts:
stage: test
tags:
- docker
script:
- echo "test_artifacts"
выдаст следующие выходные данные:
# build_artifacts job
$ echo "before_script"
before_script
$ ls
README.md
$ echo "build_artifacts"
build_artifacts
$ touch build_output
Uploading artifacts...
build_output: found 1 matching files
Uploading artifacts to coordinator... ok id=56026 responseStatus=201 Created token=xxxxzzzz
Job succeeded
# test_artifacts job
Downloading artifacts for build_artifacts (56026)...
Downloading artifacts from coordinator... ok id=56026 responseStatus=200 OK token=xxxxzzzz
$ echo "before_script"
before_script
$ ls
README.md
build_output
$ echo "test_artifacts"
test_artifacts
Job succeeded
Как видно, задание test_artifacts загружает артефакты до запуска before_script
.