GitLab CI Build не загружает артефакты кодирования - PullRequest
2 голосов
/ 11 июня 2019

У меня проблемы с тем, что GitLab не загружает артефакты, сгенерированные кодовым восприятием, когда тест не пройден.Он загружает только .gitignore в папку _output.Это релевантная часть из моего .gitlab-ci.yml:

  - ./src/Vendor/codeception/codeception/codecept run acceptance || true
  - ls -a tests/_output
  artifacts:
    paths:
    - "tests/_output"
    expire_in: 20 days
    when: always

Интересно, что я могу просматривать артефакты (в данном случае только .gitignore-файл) еще до того, как задание будет даже завершено.Журналы моего бегуна доказывают, что артефакты действительно существуют в каталоге tests/_output (коротко):

$ ls -a tests/_output
.
..
.gitignore
commentsCest.answerCommentTest.fail.html
commentsCest.answerCommentTest.fail.png
commentsCest.normalCommentTest.fail.html
commentsCest.normalCommentTest.fail.png
failed
Uploading artifacts...
tests/_output: found 2 matching files              
Uploading artifacts to coordinator... ok            id=123456789 responseStatus=201 Created token=abcdefghij
Job succeeded

Что я делаю не так?

1 Ответ

0 голосов
/ 20 июня 2019

Я нашел обходной путь:

Gitlab-runner правильно загружает файлы только внутри директории проекта.Чтобы получить артефакты, скопируйте все файлы в ${CI_PROJECT_DIR}:

codeception_tests:
  stage: <your stage-name>
  image: <your image>
  script:
  - ...
  after_script:
  - mkdir ${CI_PROJECT_DIR}/artifacts
  - mkdir ${CI_PROJECT_DIR}/artifacts/codecept
  - cp tests/_output ${CI_PROJECT_DIR}/artifacts/codecept -R
  artifacts:
    paths:
      - ${CI_PROJECT_DIR}/artifacts/
    expire_in: 5 days
    when: always
...