Gitlab: опубликовать отчет в формате html
Я использую gitlab
трубопровод для запуска некоторых тестов и подготовки отчета о покрытии.
То, что я хотел бы сделать, это иметь возможность публиковать созданную папку покрытия (которая включает в себя HTML-страницу и src
папка) в какой-то внутренний gitlab
статическая страница, доступная для просмотра некоторым членам команды.
Мне известна концепция страниц gitlab, но шаги показывают, что для этой цели мне нужно использовать генератор статического сайта.
Мои вопросы следующие:
эта концепция применима только при публикации на официальном сайте gitlab (
gitlab.io
) или я могу использовать мой на премgitlab
установка (т.е. чтобы мои страницы были доступны вmy.local.gitlab.server/mynamespace/thepagesproject
)?могу ли я просто загрузить
index.html
файл с папкой его содержимого и сделать его доступным?Каков оптимальный способ использования проекта EXISTING, чтобы просто добавить к нему несколько html-страниц (в идеале я бы хотел избежать создания нового проекта только для этой цели)
1 ответ
Могу ли я использовать GitLab Pages на автономном экземпляре?
Да, GitLab Pages работает с автономными экземплярами. Вам может потребоваться зарегистрировать доменное имя с подстановочными знаками для *.pages.<your-gitlab-domain-name>
и генерируйте сертификаты SSL, если вы используете gitlab только через https.
Как только у вас есть домен, отредактируйте /etc/gitlab/gitlab.rb
и добавьте дополнительные настройки, и запустите gitlab-ctl reconfigure
(опустить pages_nginx
настройки, если вы работаете только через http:
gitlab_pages['enable'] = true
pages_external_url "https://pages.<your-gitlab-domain-name>"
pages_nginx['redirect_http_to_https'] = true
pages_nginx['ssl_certificate'] = "/etc/gitlab/ssl/pages.<your-gitlab-domain-name>.crt"
pages_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/pages.<your-gitlab-domain-name>.key"
Как только это будет сделано, вы сможете получить доступ к страницам проекта через <group>.pages.<your-gitlab-domain-name>/<project>
Могу ли я загрузить на страницы все, что захочу?
Да. Каждое задание GitLab CI может создавать контент для публикации на страницах GitLab, записывая его в public
папка и регистрация public
в качестве каталога артефактов. Финал pages
задание должно быть добавлено в конвейер CI, который вызывает публикацию содержимого страниц (перезаписывая все, что было раньше). Все содержание public
каталог будет доступен через <group>.pages.<your-gitlab-domain-name>/<project>
URL, что означает, что вы имеете полный контроль над контентом.
Обратите внимание, что задание страниц в CI не должно иметь никакого сценария, оно просто должно присутствовать с названием задания "pages". Это волшебное имя задания, которое запускает публикацию страниц. Возможно, вы захотите добавить ограничения на работу, чтобы они работали только на главных ветвях.
Могу ли я добавить страницы публикации в существующий проект?
Да. Любые шаги, которые создают контент, который вы хотите опубликовать, должны записать контент в public
подкаталог, и зарегистрируйте public
каталог как каталог артефактов.
my job:
stage: build
script:
- echo "Do some things and write them to public directory" > public/index.html
artifacts:
paths:
- public
expire_in: 2 weeks
Примечание: я люблю добавлять expire_in: 2 weeks
чтобы ограничить продолжительность времени, артефакты хранятся вокруг. После того, как страницы были опубликованы, артефакты больше не нужны.
Наконец, вам нужно добавить pages
Работа для запуска страниц публикации:
# This job does nothing but collect artifacts from other jobs and triggers the pages build
# The artifacts are picked up by the pages:deploy job.
pages:
stage: deploy
script:
- ls -l public
artifacts:
paths:
- public
only:
- master
Обычно вы хотите публиковать только в основной ветке, но у вас есть свобода выбора, когда вы хотите, чтобы страницы публиковались. Важно отметить, что при публикации страниц он полностью заменит любой ранее опубликованный контент, поэтому вы не можете добавить его к существующему (хотя есть некоторые хаки, которые позволяют добиться чего-то подобного).