1

问题

我有一个 GitLab 存储库XXX/website-www,其中包含生成静态网站的代码。

我正在使用 GitLab CI 进行持续集成/部署。

现在,我决定使用 GitLab 页面来托管我的静态网站。这在未来很容易改变。

我找到了这个简单的配置,可以添加到我的.gitlab-ci.yml文件中:

pages:
  stage: deploy
  script:
  - <...>
  artifacts:
    paths:
    - <static_website_directory>
  only:
  - master

这很好用,但有一个问题。GitLab 页面 url 现在是XXX.gitlab.io/website-www.

我需要能够从自定义域访问这个网站,据我所知,这不能用上面的 URL 完成。

我需要有类似的东西XXX-website-www.gitlab.io

可能的解决方案

1)获取我需要的url的一种方法是创建一个名为的组XXX-website-www,并在内部创建一个名为的repo XXX-website-www.gitlab.io

这有几个问题:

  1. 我必须为这个网站创建一个全新的命名空间,它与我的主要组命名空间分开。
  2. 正如我上面所说,我可以在任何阶段轻松地从 GitLab 页面切换到另一个静态网站提供商,反之亦然。现在我的组/项目名称必须更改以允许 GitLab 页面运行。

2)另一种解决方案是进行回购镜像。我会XXX-website-www/XXX-website-www.gitlab.io从镜像XXX/website-www,但我什至不确定您是否可以从另一个 gitlab 存储库镜像。

可悲的是,这还有另一个问题:持续集成将在XXX/website-wwwrepo 上失败。

我还能如何实现这一目标?

3)另一种解决方案是XXX-website-www/XXX-website-www.gitlab.ioXXX/website-www.

我会将持续集成更改为XXX/website-www直接 git add/commit/push to XXX-website-www/XXX-website-www.gitlab.io.

XXX-website-www/XXX-website.www.gitlab.io然后,我将对GitLab pages CI进行初始提交。

这很麻烦,仍然存在上面第1个问题。在 CI 中使用 git 似乎也很混乱。

4

1 回答 1

1

另一种解决方案是在 XXX/website-www 旁边创建一个单独的 XXX-website-www/XXX-website-www.gitlab.io 存储库。

我会将持续集成更改为XXX/website-www直接 git add/commit/push to XXX-website-www/XXX-website-www.gitlab.io.

好吧...您可以XXX-website-www/XXX-website-www.gitlab.io在.XXX/website

一切都可以在 CI 步骤中完成,其中将在其关联的子文件夹中XXX/website签出。 可以在该子文件夹中完成添加/提交/推送,前提是在其父仓库中完成类似的添加/提交和推送XXX-website-www/XXX-website-www.gitlab.io
XXX/website

于 2019-07-15T05:02:18.233 回答