Проблемы с использованием правильного каталога при запуске скрипта python в gitlab-ci - PullRequest
0 голосов
/ 30 января 2019

У меня есть скрипт на python, который я пытаюсь запустить как часть развертывания страниц gitlab на сайте jekyll.На моем сайте есть записи в блогах с различными тегами, а скрипт python генерирует файлы .md для страниц тегов.Сценарий прекрасно работает, когда я просто запускаю его вручную в IDE, однако я хочу, чтобы он был частью процесса развертывания gitlab ci

. Вот как выглядит моя установка gitlab-ci.yml:

run:
  image: python:latest
  script:
  - python tag_generator.py
  artifacts:
    paths:
    - public
  only:
  - master

pages:
  image: ruby:2.3
  stage: deploy
  script:
    - bundle install
    - bundle exec jekyll build -d public
  artifacts:
    paths:
    - public
  only:
  - master

однако, он на самом деле не создает файлы, которые он должен создать, вот результат работы "run":

...
Cloning repository...
Cloning into '/builds/username/projectname'...
Checking out 4c8a47fe as master...
Skipping Git submodules setup
$ python tag_generator.py
Tags generated, count 23
Uploading artifacts...
WARNING: public: no matching files                 
ERROR: No files to upload                          
Job succeeded

скрипт считывает "сгенерированные теги,считать ___ "после того, как оно выполнено, поэтому оно работает, однако файлы, которые он должен создать, не создаются / загружаются в правильный каталог.в корневой папке проекта есть каталог / tag, куда они должны идти.

Я понимаю, что проблема должна иметь отношение к общей папке, однако, когда у меня нет

artifacts:
    paths:
    - public

, она все равно не создает файлы в каталоге / tagтак что это не работает, есть ли у меня -public или нет, и я не знаю, в чем проблема.

1 Ответ

0 голосов
/ 30 января 2019

Я выяснил это!

«сборка» для проекта не производится в репо, gitlab клонирует репо в другое место, поэтому мне пришлось изменить путь артефакта для задания python так,что он находится в клонированной локации "build", например:

run:
  image: python:latest
  stage: test
  before_script:
  - python -V               # Print out python version for debugging
  - pip install virtualenv
  script:
  - python tag_generator.py
  artifacts:
    paths:
    - /builds/username/projectname/tag
  only:
  - master
...