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

GitLab页面-如何使用任何回购协议名称?,git,gitlab,gitlab-ci,gitlab-pages,Git,Gitlab,Gitlab Ci,Gitlab Pages,问题 我有一个GitLab repoXXX/website www,其中包含生成静态网站的代码 我正在使用GitLab CI进行持续集成/部署 现在,我决定使用GitLab页面来托管我的静态网站。这在未来很容易改变 我找到了可以添加到.gitlab ci.yml文件中的简单配置: pages: stage: deploy script: - <...> artifacts: paths: - <static_website_directory&g

问题

我有一个GitLab repo
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

我需要能够访问这个网站从一个自定义域,从我所知道的,这不能用上面的网址做

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

可能的解决方案

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

这有两个问题:

  • 我必须为这个网站创建一个全新的名称空间,它与我的主组名称空间是分开的
  • 如上所述,我可以在任何阶段轻松地从GitLab页面切换到另一个静态网站提供商,反之亦然。现在我的组/项目名称必须更改,以便GitLab页面能够正常工作
  • 2) 另一个解决方案是进行回购镜像。我会从
    XXX/website www
    镜像
    XXX网站www/XXX-website-www.gitlab.io
    ,但我甚至不确定您是否可以从另一个gitlab回购镜像

    不幸的是,还有另一个问题:持续集成将在
    XXX/网站www
    repo上失败

    我还可以如何实现这一点

    3) 另一个解决方案是在
    XXX/website www/XXX-website-www.gitlab.io
    repo旁边创建一个单独的
    XXX网站www/code>

    我会将
    XXX/website www
    的持续集成更改为直接将git添加/提交/推送到
    XXX网站www/XXX-website-www.gitlab.io

    然后,我将使用gitlab pages CI对XXX网站www/XXX website.www.gitlab.io进行初始提交

    这是一个相当麻烦的问题,仍然存在上面第一个问题。在CI中使用git似乎也很麻烦

    另一个解决方案是创建一个单独的XXX网站www/XXX-website-www.gitlab.io repo和XXX/website-www

    我会将
    XXX/website www
    的持续集成更改为直接将git添加/提交/推送到
    XXX网站www/XXX-website-www.gitlab.io

    嗯。。。您可以在
    XXX/website
    中将
    XXX网站www/XXX-website-www.gitlab.io
    作为(显示为子文件夹)引用

    在CI步骤中,一切都可以在
    XXX/website
    中完成,它将在其相关子文件夹中签出
    XXX网站www/XXX-website-www.gitlab.io


    添加/提交/推送可以在该子文件夹中完成,前提是在其父repo
    XXX/website

    中完成了类似的添加/提交和推送,部署时是否也需要添加/提交/推送
    XXX/website
    ?我想避免CI在部署时更改
    XXX/website
    的主分支。@davidcallan如果
    XXX/website
    是子模块的父存储库,并且所述子模块确实发生了更改,那么是的:在父存储库中也需要添加提交和推送。好的,谢谢,我想我只是克隆、添加,提交和推送,不必为子模块操心。在我看来,无论何时部署repo(提交给),源repo都必须更新是没有意义的,因此使用子模块是没有意义的。@DavidCallanan更重要的是在父repo及其子模块版本之间保持一个强有力的链接,以便能够回到准确的状态(过去)所说的父回购协议(参考子模块的正确版本)实际上非常有意义!我从来没想过