GitLab CI:从一个存储库部署多个 reveal.js 演示文稿
GitLab CI: deploy multiple reveal.js presentations from one repository
这个问题是关于如何在 GitLab 页面上部署来自一个存储库的多个 reveal.js 演示文稿。
总结
我对 reveal.js 很陌生,正在尝试与 GitLab 集成,将演示文稿部署到 GitLab 页面。在我的回购中,我正在托管我的主题和演示文稿(全部在一个回购中)。我可以从一个分支部署一个演示文稿。下一个目标是与 GitLab 页面同时托管 all/multiple (public) 个演示文稿。
设置
- 在我的存储库中每个演示文稿(reveal.js 来自 here) is sitting in one branch. There are also theme based branches that are just for keeping the record. For the example assume there are two presentations, sitting in
/2020/pres1
and /2020/pres2
. (Setup was adapted from 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
分支将 'overwrite' 部署的第一页。
问题
必须对 yml 文件进行哪些更改才能实现以下结果?
- 演示文稿托管在
username.gitlab.io/repo-name/year/branch
。
- 在此示例中,演示文稿将到达:
username.gitlab.io/repo-name/2020/pres1
和
username.gitlab.io/repo-name/2020/pres2
提前感谢您的建议。
经过一些尝试和错误,我想出了以下解决方案:
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
语句是否有问题。
这个问题是关于如何在 GitLab 页面上部署来自一个存储库的多个 reveal.js 演示文稿。
总结
我对 reveal.js 很陌生,正在尝试与 GitLab 集成,将演示文稿部署到 GitLab 页面。在我的回购中,我正在托管我的主题和演示文稿(全部在一个回购中)。我可以从一个分支部署一个演示文稿。下一个目标是与 GitLab 页面同时托管 all/multiple (public) 个演示文稿。
设置
- 在我的存储库中每个演示文稿(reveal.js 来自 here) is sitting in one branch. There are also theme based branches that are just for keeping the record. For the example assume there are two presentations, sitting in
/2020/pres1
and/2020/pres2
. (Setup was adapted from 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
分支将 'overwrite' 部署的第一页。
问题
必须对 yml 文件进行哪些更改才能实现以下结果?
- 演示文稿托管在
username.gitlab.io/repo-name/year/branch
。 - 在此示例中,演示文稿将到达:
username.gitlab.io/repo-name/2020/pres1
和username.gitlab.io/repo-name/2020/pres2
提前感谢您的建议。
经过一些尝试和错误,我想出了以下解决方案:
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
语句是否有问题。