Можно ли использовать страницы GitLab для просмотра приложений в проекте mkdocs? - PullRequest
4 голосов
/ 04 марта 2020

Этот ответ от @ joki на предыдущий вопрос предполагает, что можно развернуть каждую активную ветку в репозитории GitLab для динамической c окружении, предоставляя доступным для просмотра артефактам общедоступный c URL.

При попытке выполнить это с проектом mkdocs материал я обнаружил две проблемы.

Во-первых, если репозиторий GitLab находится в группе или подгруппе, URL-адреса в файле .gitlab-ci.yml должны выглядеть примерно так:

    environment:
        name: review/$CI_COMMIT_REF_NAME
        url: "$CI_PAGES_URL/-/jobs/$CI_JOB_ID/artifacts/public/index.html"
        auto_stop_in: 1 week
    variables:
        PUBLIC_URL: "$CI_PAGES_URL/-/jobs/$CI_JOB_ID/artifacts/public/"

Во-вторых, относительные ссылки на сайте не работают должным образом, что приводит к много 404 ошибок и потеря таких вещей, как файлы стилей. Возможно, приведенные выше URL-адреса неверны, или, возможно, site_url в mkdocs.yml необходимо изменить на что-то вроде:

site_url: !!python/object/apply:os.getenv ["CI_ENVIRONMENT_URL"]

, однако, ни один из них не сработал для меня.

A минимальный MR с очень маленьким приложением для развертывания и просмотра может быть найден здесь .

У кого-нибудь есть рабочий рецепт для приложений обзора mkdocs?

1 Ответ

2 голосов
/ 08 марта 2020

Вы можете найти нужный URL-адрес в кнопке »Обзор« шага build в своем конвейере.

Работает ли это?

develop:
    artifacts:
        paths:
          - public

    environment:
        name: Develop
        url: "https://$CI_PROJECT_NAMESPACE.gitlab.io/-/snim2-test-subgroup/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/public/index.html"

    script: |
        # whatever

    stage: deploy

    variables:
        PUBLIC_URL: "/-/snim2-test-subgroup/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/public"

Вам также понадобится изменив mkdocs.yml на , используйте PUBLIC_URL и убедитесь, что он используется везде, где создаются абсолютные внутренние ссылки :

site_url: !!python/object/apply:os.getenv ["PUBLIC_URL"]
use_directory_urls: false
…
...