我运行我的页面作业并且它通过了,但是在结尾处有以下消息
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背后的想法真的如此。现在我不知道如何解决这个问题,因为它在我的机器上构建得很好,另一方面我无法直接访问构建服务器。
我验证了
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在构建过程中会生成更多文件。
答案 0 :(得分:1)
根据this documentation和this tutorial GitLab页面只会考虑名为public
的文件夹,该文件夹位于项目目录中。这就是HTML内容应该转到~/projectname/public
而不是~/public
。
答案 1 :(得分:0)
我想我被这个问题吃掉了。实际上,在我们以root身份连接的docker镜像中~/public
是/root/public
:)而不是gitlab页面所期望的。
你应该试试
mv build/html public