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

时间:2017-04-13 21:21:37

标签: gitlab gitlab-ci

我运行我的页面作业并且它通过了,但是在结尾处有以下消息

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

该网站似乎没有送达。所有构建步骤都成功完成且没有错误。我在我的机器上尝试了本地构建并验证它是正确的。该网站的切入点是index.html(我猜这是正确的吗?)。

如何解决此问题?如果我能做到这一点并且手动"那将是很好的。所以我可以在CI机器上构建文件后检查一些事情。就像那样,我不必提交+推送新的.gitlab-ci.yml来检查/尝试一些事情。

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

P.S。:如果重要的话,我使用Sphinx构建网站。

编辑 - 一些细节

我通过Sphinx'来构建文档。 Makefile(这是我文档的一部分)。 Sphinx向我确认文件放在build/html(我在我的本地机器上确认了这个),然后将它们复制到公共文件夹。这是我ci.yaml的相应摘录:

- make html
- mkdir ~/.public
- cp -r build/html/* ~/.public/
- cd
- mv .public public

我不知道Sphinx' conf.py对于那种情况可能很有趣,我已经扫描了它并且它似乎没有被破坏(也是本地构建工作)。

作为输出,我获得了index.html +其他几个从index.html链接的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在构建过程中会生成更多文件。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我想我被这个问题吃掉了。实际上,在我们以root身份连接的docker镜像中~/public/root/public :)而不是gitlab页面所期望的。

你应该试试

mv build/html public