问题标签 [gitlab-pages]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
292 浏览

next.js - Gitlab Pages 上的 NextJS SSG,得到 503?

我最近使用 NextJS SSG 项目更新了我的个人网站(使用来自 Gitlab.com 的 Gitlab Pages),您可以在此处查看

当我快要完成这项工作时(一切正常),我在 GT Metrix 和 Twitter Card Validator 上检查了我的 SEO……令人不快的是(!):对于某些页面(但不是每一页),GT Metrix 告诉我他得到 503 错误,对于相同的页面,Twitter 验证器向我显示了 Gitlab 登录页面的链接(显然已重定向)

以下是有错误的页面:

我坚持认为该站点在浏览时工作正常,并且在检查可能的 NextJS 编码问题时,我找不到任何东西(路由和配置似乎已正确完成)。

作为记录,我使用的是 NextJS 9.5,并且我还使用语言环境来提供多语言支持......也许它是相关的?我检查了我的代码,看起来没问题,但是问题一定出在某个地方,在我的代码中还是在我的 repo 设置中?

我试图清除跑步者缓存,在重建之前删除我的页面,......但没有任何效果。这是一些配置文件,如果有帮助的话:

gitlab-ci.yml

next.config.js

我在这里完全迷失了,这些问题,即使没有阻止浏览,仍然是问题......所以任何帮助都会非常棒!

谢谢大家!

0 投票
2 回答
1024 浏览

gitlab - 使用 gitlab 页面托管多个测试报告

我们的 gitlab 管道中有一个测试套件,可以生成 Allure 测试报告。为了在测试后使这些结果可用,我们目前将结果发布到工件并allure serve运行,根据分支名称使它们在子域上可用。

我们想用每个分支的 gitlab 页面来托管测试结果。但是,我们一次只能通过 gitlab 页面托管一个页面版本。这是一个问题,因为我们希望托管每个分支的测试结果,而不仅仅是最后执行的分支。如果没有 hacks,这似乎是不可能的。

我还发现了这个 3 岁的 gitlab issue关于该主题,这表明将来某些版本的 gitlab 中会出现。

有一个更好的方法吗?还是我们目前最好的选择是等到 gitlab 中可用?

0 投票
1 回答
557 浏览

html - 试图将带有 html + scss 的站点部署到 gitlab,但不知道该怎么做

我已经尝试过的一切都对我不起作用(youtube 上的几个网站和视频)。请给我链接另一个有用的视频或帮助我理解这个过程。我发现使用 gh-pages 将站点部署到 GitHub 要容易得多,但是部署到 GitLab 时遇到问题。

已经尝试将我的项目推送到 GitLab,然后是 CI/CD > Pipelines,我的项目在那里成功构建,然后是 Settings > Pages,仍然是 404(等待超过 1 天)。我已经安装了“.gitlab-ci.yml”文件(带有基本的 HTML 设置)。

顺便说一句,我应该推送预建站点还是已经转换?

现在是这样的:

编辑:我找到了解决我的具体问题的方法。由于 GitLab Pages 是一个静态托管,因此在部署 sass 文件之前,您需要先编译它们,并且只有在部署之后才能编译它们。这是我的 gitlab-ci.yml 文件。

在编译阶段注意我如何指向我的main.scss文件路径,这对你来说可能不同。还有编译文件styles.css的路径(你需要使用你的css样式的文件名,在<head>你的主html文件部分提到)。还要检查工件行的路径,以便您可以正确引导文件。如您所见,对于编译,我使用的是 Yarn(无需安装任何东西即可使用它)。编译我的 sass 文件后,下一阶段是部署,这按计划对我有用。

希望对您也有帮助!

0 投票
0 回答
418 浏览

git - 使用 Hugo 框架为不同的分支部署 GitLab 页面?

我正在使用 Hugo 框架来部署 GitLab 页面。如另一篇文章所述,似乎可以为多个分支发布页面。

我试图整合帖子中提供的代码,但它不起作用。

我原来的gitlab-ci.yml样子:

使用 hugo 时是否可以为每个分支部署页面?我需要改变什么来实现这一点?

0 投票
2 回答
89 浏览

javascript - 无法在 Gitlab 页面上访问我的 Svelte 组件名称

我在 Svelte 做 SPA。它在本地和 Svelte REPL 上工作,其中显示了条件内的组件,但在我部署到 Gitlab Pages 时却没有。

在我的情况下,App.svelte我使用 asvelte:component来始终渲染当前$screenfooter组件,如果屏幕是Payments

在我的store.js我有这个

检查相同的示例

在 Svelte REPL 上工作。

笔记

如果我使用组件屏幕本身而不是变量,name一切都会按预期工作,但现在(可能)我正在重载(导入所有屏幕)。现在,它只是Payments但它可能是更多的屏幕。

我是否需要配置任何额外的东西,有人在部署后尝试类似的东西吗?

任何帮助将不胜感激:)

0 投票
0 回答
123 浏览

python - Sphinx 包含来自包的文档

我有几个项目,每个项目一个存储库。其中一个存储库管理全局文档,所有其他存储库都是 python 包。

我想保持每个包文档独立(不仅是模块文档,还有安装说明/示例/等)。换句话说,每个包都负责自己的文档。

主文档存储库应包含所有文档(并在其上添加一些结构以及一些文本以将所有这些包链接在一起)。我正在寻找比我现在拥有的更简单/更清洁的解决方案。

当前解决方案

包文件

每个包都有一个doc/文件夹,其中包含两个module_description.rst(结构化自动文档语句)。例如,package_name这看起来或多或少像这样:

我拥有的第二个文件index.rst看起来像:

主文档

主文档包括对仅包含一行的文档的引用:

正如您可能猜到的那样,为了完成这项工作,我使用了一个指向package_name 存储库并允许我获取文件的 git 子模块package_name/doc/_sources/index.rst。单独这样做是行不通的,因为 autodoc 语句找不到模块package_name

因此,我需要在主文档中安装该软件包。我有两个选择,要么从子模块安装它,要么直接从包注册表安装(两者都适合我)。

问题

我可以避免添加 git 子模块而只安装package_name吗?如果是这样,我如何doc/index.rst从主要的 sphinx 文档中包含它?

也许还有更好的方法,但我找不到任何关于此的文章。欢迎任何参考,因为我很难找到合适的词来询问我的搜索引擎朋友。

请注意,我有一个约束,我希望 gitlab 从此主文档构建生成页面。

0 投票
1 回答
262 浏览

gitlab - 托管 VS 本地:gitlab-ci.yml 将“静态”目录复制到“公共”。如何告诉本地命令“bundle exec jekyll serve”也这样做

我没有网站建设经验。我已经按照 gitlab 上的说明创建了一个示例 jekyll 站点(包括删除 fork 关系并将 url 重命名为 groupname)。在 gitlab 上,.gitlab-ci.yml文件包含:

在gitlab的'root'文件夹中,有index.html、目录(css、static)等。在gitlab-ci.yml文件中可以看到,gitlab将静态目录的内容复制到根文件夹(public )。尽管在查看我的项目页面(而不是副本)时只有静态文件。

在 linux 上,我已经安装运行了jekyll,但它显示不正确。命令行中的“未找到”错误所有引用路径都在静态目录中(其中包含 css、font-awesome、fonts、img 和 js 的子目录)。

我不愿意在本地弄乱文件/目录位置,因为当我想将更改部署到 gitlab 时可能会导致问题。如何在本地模拟(使用“bundle exec jekyll serve”命令)gitlab 正在做什么(将静态复制到根目录)?还是有另一种方法来处理/解决这个问题?

编辑:运行 serve 命令时,我还看到“配置文件:无”消息。虽然有一个 _config.yml 文件,但我认为它可能需要一些配置。在不同的 gitlab/jekyll主题上,有一些配置说明。我将不得不进一步调查。

解决后编辑:

根据 Ross 的建议,我将 .gitlab-ci.yml 文件中的行从“jekyll build -d public/”更新为“bundle exec jekyll build -d public”。对于这个文件,我看到其他人已经删除了“gem install jekyll”这一行,但我仍然拥有它并且它现在可以工作。尽管我想知道是否应该将其更改为“捆绑安装”,以便 gitlab/local jekyll 版本相同。bundle 命令读取 Gem 文件,我指定了 jekyll 版本。我不确定这是否会告诉 gitlab 使用特定版本的 jekyll,或者他们是否只使用他们的版本。

然后在 linux 上本地使用从 gitlab 下载的 .yml 文件进入站点目录。然后跑了

提供的页面不再损坏。它现在看起来与实际的 gitlab.io 页面完全相同。

0 投票
1 回答
299 浏览

gitlab - Gitlab CI:为 CI 和合并请求构建,但仅将 CI 发布到页面

我有一个.gitlab-ci.yml文件,我想用它来运行用于合并请求验证的脚本。在 CI 中应该使用相同的脚本,但只有在那里结果才应该发布到 gitlab 页面。此外,仅对于 CI,结果应该被缓存。

这是当前的简化版本.gitlab-ci.yml

(实际代码在fdroid-firefox gitlab 存储库中。)

触发管道的方式有两种。根据这一点,我愿意或不希望发布到页面:

  1. 通过合并请求验证。在这种情况下,我想执行该script部分,但我不想发布或缓存结果(否则,任何有权创建合并请求的人都可能覆盖 gitlab 页面内容)。
  2. 由 CI(在签入master分支后并按照计划触发)。在这种情况下,我希望缓存结果并更新 gitlab 页面。

我已经尝试过拆分阶段:

(原始.gitlab-ci.yml文件)但是通过这样做,pages:deploy阶段失败了,因为它无法访问build阶段的结果。pages:deploy舞台显示错误符号,并在工具提示上显示missing pages artifacts。(真实世界日志)。日志说:

我做错了什么,我无法访问构建阶段的结果?

如何script在这两种情况下运行该部分,但仍仅从master分支部署到页面?

0 投票
0 回答
449 浏览

github - 在管道/作业之间携带 Gitlab 页面的工件

我正在尝试通过管道生成测试报告。生成了 Html,我可以访问 Gitlab 页面。但是,如果触发了新管道(或者即使是作业),则会生成测试报告并且前一个给出 404 错误,则会出现问题。(网址不同)

即例如:example.gitlab.io/project/{CI_PIPELINE_ID}/ 或 {CI_JOB_ID}

用例是这并没有给我一个选项来比较测试报告。

一个解决方案是缓存公用文件夹,然后我可以在各自的 URL 中访问不同版本的测试。

但是我对此并不陌生,我不确定这是否正确,因为我必须手动清除缓存,我认为这仅适用于项目的维护者和所有者。

有没有其他方法可以保留以前管道中的 Gitlab 页面?

PS:我是新手

编辑:添加示例 gitlab-ci.yml 文件以供参考:

0 投票
0 回答
437 浏览

gitlab - Gitlab EE - 没有通配符域的 Gitlab 页面设置

我不知道如何在没有通配符域的自托管 Gitlab 实例上设置 Gitlab 页面。例如,我有 1 台服务器,有 3 个公共 IP 地址和域名:

  • 10.8.0.10 (git.example.com) - GitLab 主实例
  • 10.8.0.11 (registry.example.com) - 容器注册表
  • 10.8.0.12 (pages.example.com) - GitLab 页面

然后'我像这样设置 Omnibus 配置/etc/gitlab/gitlab.rb

例如,我有一个位于https://git.example.com/somegroupname/project的项目。我可以通过https://registry.example.com/somegroupname/project访问该项目的容器注册表,并使用命令拉取 Docker 映像docker pull registry.example.com/somegroupname/project

我知道 GitLab Pages 将命名空间设置为 A 记录。就我而言,它设置为https://somegroupname.pages.example.com/project,但我无法使用此类域名。相反,我想将命名空间放在这样的路径中:
https://pages.example.com/somegroupname/project
但我找不到任何设置或参数来启用此行为,并且它不适用于当前设置。所有页面都正确存储在默认路径/var/opt/gitlab/gitlab-rails/shared/pages/中。可以请人帮助我吗?