如何在 GitLab 页面上传期间排除故障/调查错误?

How to troubleshoot / investigate an error during GitLab pages upload?

我 运行 我的页面工作并且它通过了,但是最后有以下消息

Uploading artifacts...
WARNING: public: no matching files
Uploading artifacts to coordinator... ok
Job succeeded

该网站似乎无法访问。所有构建步骤都成功且没有错误。我在我的机器上本地尝试构建并验证它是正确的。该网站的入口点是 index.html(我想这是正确的?)。

如何解决这个问题?如果我能完成 "manually" 的工作就好了,这样我就可以在 CI 机器上构建文件后检查一些东西。这样我就不必一直提交+推送一个新的.gitlab-ci.yml来检查/尝试。

非常感谢任何建议!谢谢!

P.S.: 如果这很重要,我会使用 Sphinx 构建网站。

编辑 - 一些细节

我通过 Sphinx 的 Makefile(它是我文档源的一部分)构建文档。 Sphinx 向我确认文件位于 build/html 中(我在本地计算机上确认了这一点)并将它们复制到 public 文件夹中。这是我的 ci.yaml:

的相应摘录
- make html
- mkdir ~/.public
- cp -r build/html/* ~/.public/
- cd
- mv .public public

我不知道来自 Sphinx'conf.py 的哪些信息对于这种情况可能很有趣,我已经扫描过它并且它似乎没有损坏(本地构建也可以)。

作为输出,我获得了一个 index.html + 其他几个 HTML 文件,这些文件链接自 index.html。这一切都放在 ~/public.

如果能够在构建服务器上手动执行这些构建步骤,我将非常感激,因为我可以查看构建文件,然后也许可以找出问题所在。我没有找到任何文档证明这是可能的,但我也不认为这真的是 CI 背后的想法。现在我不确定我应该如何解决这个问题,因为它在我的机器上构建良好,另一方面我无法直接访问构建服务器。

编辑 2

我通过

验证
ls -al ~/public

在我的 ci.yaml 文件中,生成的文件都在正确的位置。特别是:

$ ls -al ~/public
[...]
-rw-r--r--. 1 root root  5621 Apr 13 23:31 index.html
[...]

所以 GitLab 页面似乎期待除 index.html 以外的其他东西?我从他们的示例页面存储库中 运行 Jekyll 示例,并且在 index.html 下工作正常。但也许 Jekyll 在构建过程中会生成更多文件。

根据 this documentation and this tutorial,GitLab 页面只会考虑名为 public 的文件夹,该文件夹位于 项目目录 内。也就是说 HTML 内容应该转到 ~/projectname/public 而不是 ~/public.

我想我被这个问题吃掉了。实际上 ~/public 在 docker 图像中,我们作为 root 连接的地方......是 /root/public :) 而不是 gitlab pages 所期望的。

你应该试试

mv build/html public