0

这个问题是关于如何在 GitLab 页面上部署来自一个存储库的多个reveal.js 演示文稿。

概括

我对reveal.js 很陌生,并且在尝试与GitLab 集成,将演示文稿部署到GitLab 页面。在我的 repo 中,我正在托管我的主题和演示文稿(都在一个 repo 中)。我可以从一个分支部署一个演示文稿。下一个目标是使用 GitLab 页面同时托管所有/多个(公共)演示文稿。

设置

  • 在我的存储库中,每个演示文稿(来自此处的reveal.js )都位于一个分支中。还有一些基于主题的分支,仅用于保存记录。例如,假设有两个演示文稿,坐在/2020/pres1和中/2020/pres2。(设置改编自Elmiko)。
  • 在第一个演示文稿分支中,.gitlab-ci.yml正在放置一个文件,它将第一个演示文稿部署username.gitlab.io/repo-name/到此工作正常。

    .gitlab-ci.yml

pages:
  stage: deploy
  script:
  - mkdir .public
  - cp -r * .public
  - mv .public public
  artifacts:
    paths:
    - public
  only:
  - 2020/pres1
  • 据我了解,添加第二个相同的文件,适用于pres2它的2020/pres2分支将“覆盖”部署的第一页。

问题

必须对 yml 文件进行哪些更改才能达到以下结果?

  • 演示文稿在username.gitlab.io/repo-name/year/branch.
  • 在此示例中,演示文稿将在以下位置进行:
    • username.gitlab.io/repo-name/2020/pres1
    • username.gitlab.io/repo-name/2020/pres2

提前感谢您的建议。

4

1 回答 1

0

有了一些线索和错误,我想出了以下解决方案:

cache:
  paths:
    - public

pages:
  stage: deploy

  script:
  - mkdir .build
  - cp -r * .build/
  - mkdir -p public/$CI_COMMIT_BRANCH/
  - rm -r public/$CI_COMMIT_BRANCH/* # do delete possible stuff from old build
  - mv .build/* public/$CI_COMMIT_BRANCH/
  artifacts:
    name: "$CI_COMMIT_BRANCH"
    paths:
    - public

这篇文章帮助开发了所示的解决方案。对此解决方案可能存在的缺陷的评论表示赞赏。不确定该only语句被删除是否有问题。

于 2020-02-02T20:47:06.353 回答