GitLab 页面可以用于审查 mkdocs 项目上的应用程序吗?
Can GitLab pages be used for review apps on a mkdocs project?
by @joki to a 建议可以将 GitLab 存储库中的每个活动分支部署到动态环境,方法是为可浏览的工件提供 public URL.
在 mkdocs material 项目中进行尝试,我发现了两个问题。
首先,如果 GitLab 存储库在组或子组中,.gitlab-ci.yml
文件中的 URLs 需要更像这样:
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 不正确,或者 mkdocs.yml
中的 site_url
需要更改为:
site_url: !!python/object/apply:os.getenv ["CI_ENVIRONMENT_URL"]
然而,这些都不适合我。
具有非常小的部署和审查应用程序的最小 MR 可以是 found here。
有人有 mkdocs 评论应用程序的工作秘诀吗?
您可以在管道中 build
步骤的 »Browse« 按钮中看到您需要的 URL。
这个有用吗?
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
才能实际生成 use the PUBLIC_URL
, and make sure it's used everywhere that absolute internal links:
site_url: !!python/object/apply:os.getenv ["PUBLIC_URL"]
use_directory_urls: false
…
在 mkdocs material 项目中进行尝试,我发现了两个问题。
首先,如果 GitLab 存储库在组或子组中,.gitlab-ci.yml
文件中的 URLs 需要更像这样:
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 不正确,或者 mkdocs.yml
中的 site_url
需要更改为:
site_url: !!python/object/apply:os.getenv ["CI_ENVIRONMENT_URL"]
然而,这些都不适合我。
具有非常小的部署和审查应用程序的最小 MR 可以是 found here。
有人有 mkdocs 评论应用程序的工作秘诀吗?
您可以在管道中 build
步骤的 »Browse« 按钮中看到您需要的 URL。
这个有用吗?
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
才能实际生成 use the PUBLIC_URL
, and make sure it's used everywhere that absolute internal links:
site_url: !!python/object/apply:os.getenv ["PUBLIC_URL"]
use_directory_urls: false
…