Gitlab CI не вызывает задание «страницы»

У меня есть проект, размещенный на Gitlab. Сайт проекта находится внутри ветки pages и является сайтом на основе jekyll.

Мой .gitlab-ci.yml выглядит так

pages:
  script:
  - gem install jekyll
  - jekyll build -d public/
  artifacts:
    paths:
    - public
  only:
    - pages

image: node:latest

cache:
  paths:
    - node_modules/

before_script:
  - npm install -g gulp-cli
  - npm install

test:
  script:
    - gulp test

Когда я отправил этот файл конфигурации в master, конвейер выполнил только задание test, а не задание pages. Я подумал, что, возможно, нажатие на master не вызвало это задание, потому что only указывает ветвь pages. Затем я попытался нажать на ветку pages, но безрезультатно.

Как запустить задание pages?


person Chirag Arora    schedule 06.05.2017    source источник
comment
когда должно выполняться задание страницы? на каждой ветке? до, после или одновременно с тестом?   -  person Rufinus    schedule 06.05.2017
comment
без определенных этапов docs.gitlab.com/ce/ci/yaml/ README.html#stages — задание страниц запускается только после успешного завершения теста.   -  person Rufinus    schedule 06.05.2017
comment
Он должен запускаться всякий раз, когда я нажимаю/объединяю ветку страниц. И да, даже после того, как тест был завершен, он не запустился.   -  person Chirag Arora    schedule 06.05.2017


Ответы (3)


Вы правы, предположив, что ограничение only заставляет задание выполняться только для ref's или branches, указанных в предложении only.

См. https://docs.gitlab.com/ce/ci/yaml/README.html#only-and-except

Возможно, конфликт возникает из-за того, что ветка и задание имеют одно и то же имя. Не могли бы вы попробовать переименовать задание во что-то другое, просто для проверки?

person matteeyah    schedule 06.05.2017
comment
В документации сказано, что pages — это особое задание. Что это значит? Смена имени ни на что не повлияет? docs.gitlab.com/ce/ci/yaml/#pages - person Chirag Arora; 06.05.2017
comment
@ChiragArora, вы должны сохранить имя задания pages — именно оно будет использоваться для развертывания вашего сайта с помощью GitLab Pages. Если вы измените имя задания, ваш сайт не будет развернут. - person Virtua Creative; 08.05.2017

Я бы попробовал пару вещей. Во-первых, я бы поместил этот фрагмент stages вверху YML:

stages:
  - test
  - pages

Это явно указывает CI запустить этап pages после успешного выполнения этапа test.

Если это не сработает, я бы удалил тег only и посмотрел, что произойдет.

person Ben    schedule 07.05.2017
comment
Что на самом деле сработало, так это то, что мне пришлось отправить .gitlab-ci.yml в саму ветку pages, а не в ветку master. Документация плохо документирована и явно не говорит вам делать это. - person Chirag Arora; 09.05.2017

Дополнение ответов @rex:

Вы можете сделать либо:

pages:
  script:
  - gem install jekyll
  - jekyll build -d public/
  artifacts:
    paths:
    - public

Который развернет ваш сайт независимо от имени ветки или:

pages:
  script:
  - gem install jekyll
  - jekyll build -d public/
  artifacts:
    paths:
    - public
  only:
  - master # or whatever branch you want to deploy Pages from

Который развернет страницы из master.

Пожалуйста, дайте мне знать, если это поможет :)

person Virtua Creative    schedule 08.05.2017
comment
Что на самом деле сработало, так это то, что мне пришлось отправить .gitlab-ci.yml в саму ветку pages, а не в ветку master. Документация плохо документирована и явно не говорит вам делать это. - person Chirag Arora; 09.05.2017
comment
На страницах GitLab много документации: docs.gitlab.com/ce/user/project /страницы. Что ж, при работе с Git ожидается, что вы извлечете новую ветку из ветки по умолчанию (обычно master). Следовательно, каждая ветка будет содержать одни и те же файлы, за исключением файлов, которые изменяются в этой ветке. (Таким образом, каждая ветка будет иметь .gitlab-ci.yml файла) => См. git-scm.com/book/en/v2/ для справки. Но вы правы, я не думаю, что есть документ, прямо говорящий об этом. ;) - person Virtua Creative; 09.05.2017
comment
@MSBerends, это задокументировано здесь: docs.gitlab.com/ee /user/project/pages/, если хотите посмотреть. Надеюсь, поможет :) - person Virtua Creative; 24.12.2018
comment
Я так и сделал, нашел, спасибо! Теперь узнаем, как украсить наш сайт R pkgdown :) - person MS Berends; 24.12.2018
comment
@MSBerends круто! Рад, что вы разобрались! :) вы можете взглянуть на эти примеры проектов и посмотреть, как настроен gitlab-ci, чтобы помочь вам сделать это для вашего варианта использования :) gitlab.com/pages - person Virtua Creative; 24.12.2018