GitLab页面-如何使用任何回购名称?

时间:2019-07-14 20:02:25

标签: git gitlab gitlab-ci gitlab-pages

问题

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

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

就目前而言,我已经决定使用GitLab页面来托管我的静态网站。将来很容易改变。

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

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

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

我需要能够从自定义域访问此网站,并且据我所知,上述URL无法做到这一点。

我需要像XXX-website-www.gitlab.io这样的东西。

可能的解决方案

1)一种获取我需要的url的方法是创建一个名为XXX-website-www的组,并在其中创建一个名为XXX-website-www.gitlab.io的存储库。

这有两个问题:

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

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

可悲的是,这还有另一个问题:XXX/website-www存储库中的持续集成将失败。

我还能怎么实现呢?

3)另一个解决方案是在XXX-website-www/XXX-website-www.gitlab.io旁边创建一个单独的XXX/website-www回购。

我将更改XXX/website-www的持续集成,以直接对XXX-website-www/XXX-website-www.gitlab.io进行git add / commit / push。

然后我将使用GitLab页面CI对XXX-website-www/XXX-website.www.gitlab.io进行初始提交。

这是一个很麻烦的问题,但仍然存在上面数字1的问题。在CI中使用git似乎也很混乱。

1 个答案:

答案 0 :(得分:0)

  

另一种解决方案是与XXX / website-www一起创建单独的XXX-website-www / XXX-website-www.gitlab.io回购。

     

我将更改XXX/website-www的持续集成,以直接对XXX-website-www/XXX-website-www.gitlab.io进行git add / commit / push。

好吧...您可以在XXX-website-www/XXX-website-www.gitlab.io中将XXX/website引用为submodule(显示为子文件夹)。

在CI步骤中,可以在XXX/website内完成所有操作,这将在与其关联的子文件夹中检出XXX-website-www/XXX-website-www.gitlab.io
可以在该子文件夹中完成添加/提交/推送,只要在其父存储库XXX/website

中完成类似的添加/提交和推送即可