温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - GitLab CI: deploy multiple reveal.js presentations from one repository
gitlab gitlab-ci reveal.js gitlab-pages

其他 - manbetx客户端打不开CI:从一个存储库部署多个reveal.js演示文稿

发布于 2020-04-12 12:53:13

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

摘要

我是一个非常新的揭示.js的人,正在尝试与GitLab集成,将演示文稿部署到GitLab页面。在我的仓库中,我将主持我的主题和演示文稿(全部在一个仓库中)。我可以从一个分支机构部署一个演示文稿。下一个目标是使用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
  • 据我了解,添加第二个相同的文件(pres22020/pres2分支适用于文件),分支将“覆盖”已部署的第一页。

为了达到以下结果,必须对yml文件进行哪些更改?

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

预先感谢您的建议。

查看更多

提问者
Laenan
被浏览
104
Laenan 2020-02-03 05:04

经过一番摸索,我提出了以下解决方案:

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语句是否被删除是一个问题