如何发布 html 报告
How to publish html report
我正在使用 GitLab 管道 运行 进行一些测试并生成覆盖率报告。
我想做的是能够将生成的覆盖文件夹(包括一个 html 页面和一个 src
文件夹)发布到某个内部 GitLab 静态页面,供某些团队查看成员。
我知道 gitlab pages 概念,但步骤表明我必须为此目的使用静态站点生成器。
我的问题如下:
是仅在官方 GitLab 网站 (gitlab.io
) 上发布时可用的概念,或者我可以使用我的本地 GetLab 安装(即,以便我的页面可用my.local.gitlab.server/mynamespace/thepagesproject
)?
我可以只上传一个 index.html
文件及其内容的文件夹并使其可访问吗?
利用 现有 项目的最佳方式是什么,以便向其中添加一些 html 页面(理想情况下我想避免为此目的创建一个新项目)
我可以在自托管实例上使用 GitLab Pages 吗?
是的,GitLab Pages 适用于自托管实例。您可能需要为 *.pages.<your-gitlab-domain-name>
注册一个通配符域名,如果您仅通过 https 运行ning gitlab 生成 SSL 证书。
拥有域后,编辑 /etc/gitlab/gitlab.rb
并添加额外设置,然后 运行 和 gitlab-ctl reconfigure
(如果您 运行仅通过 http:
gitlab_pages['enable'] = true
pages_external_url "https://pages.<your-gitlab-domain-name>"
pages_nginx['redirect_http_to_https'] = true
pages_nginx['ssl_certificate'] = "/etc/gitlab/ssl/pages.<your-gitlab-domain-name>.crt"
pages_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/pages.<your-gitlab-domain-name>.key"
完成后,您将能够通过 <group>.pages.<your-gitlab-domain-name>/<project>
访问每个项目的页面
我可以上传我想要的任何内容到页面吗?
是的。每个 GitLab CI 作业都可以通过将内容写入 public
文件夹并将 public
注册为工件目录来创建要在 GitLab 页面中发布的内容。应将最终 pages
作业添加到 CI 管道,这会导致发布页面内容(覆盖之前存在的任何内容)。 public
目录的所有内容都可以通过 <group>.pages.<your-gitlab-domain-name>/<project>
URL 访问,这意味着您可以完全控制内容。
请注意 CI 中的页面作业不需要任何脚本,它只需要与作业名称一起出现 "pages"。这是一个触发页面发布的神奇作业名称。您可能想要添加作业限制,以便仅在主分支管道上 运行s。
我可以添加页面发布到现有项目吗?
是的。任何创建要发布的内容的步骤都应将内容写入 public
子目录,并将 public
目录注册为工件目录。
my job:
stage: build
script:
- echo "Do some things and write them to public directory" > public/index.html
artifacts:
paths:
- public
expire_in: 2 weeks
注意:我喜欢添加 expire_in: 2 weeks
以限制工件保留的时间长度。页面发布后,就不再需要工件了。
最后您需要添加一个 pages
作业来触发页面发布:
# This job does nothing but collect artifacts from other jobs and triggers the pages build
# The artifacts are picked up by the pages:deploy job.
pages:
stage: deploy
script:
- ls -l public
artifacts:
paths:
- public
only:
- master
通常你只想在 master 分支上发布,但你可以自由选择何时将页面发布到 运行。重要的是要注意,当页面发布 运行s 时,它将完全替换之前发布的任何内容,因此您不能附加到现有内容(尽管有一些技巧可以让您实现类似的目的) .
我正在使用 GitLab 管道 运行 进行一些测试并生成覆盖率报告。
我想做的是能够将生成的覆盖文件夹(包括一个 html 页面和一个 src
文件夹)发布到某个内部 GitLab 静态页面,供某些团队查看成员。
我知道 gitlab pages 概念,但步骤表明我必须为此目的使用静态站点生成器。
我的问题如下:
是仅在官方 GitLab 网站 (
gitlab.io
) 上发布时可用的概念,或者我可以使用我的本地 GetLab 安装(即,以便我的页面可用my.local.gitlab.server/mynamespace/thepagesproject
)?我可以只上传一个
index.html
文件及其内容的文件夹并使其可访问吗?利用 现有 项目的最佳方式是什么,以便向其中添加一些 html 页面(理想情况下我想避免为此目的创建一个新项目)
我可以在自托管实例上使用 GitLab Pages 吗?
是的,GitLab Pages 适用于自托管实例。您可能需要为 *.pages.<your-gitlab-domain-name>
注册一个通配符域名,如果您仅通过 https 运行ning gitlab 生成 SSL 证书。
拥有域后,编辑 /etc/gitlab/gitlab.rb
并添加额外设置,然后 运行 和 gitlab-ctl reconfigure
(如果您 运行仅通过 http:
gitlab_pages['enable'] = true
pages_external_url "https://pages.<your-gitlab-domain-name>"
pages_nginx['redirect_http_to_https'] = true
pages_nginx['ssl_certificate'] = "/etc/gitlab/ssl/pages.<your-gitlab-domain-name>.crt"
pages_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/pages.<your-gitlab-domain-name>.key"
完成后,您将能够通过 <group>.pages.<your-gitlab-domain-name>/<project>
我可以上传我想要的任何内容到页面吗?
是的。每个 GitLab CI 作业都可以通过将内容写入 public
文件夹并将 public
注册为工件目录来创建要在 GitLab 页面中发布的内容。应将最终 pages
作业添加到 CI 管道,这会导致发布页面内容(覆盖之前存在的任何内容)。 public
目录的所有内容都可以通过 <group>.pages.<your-gitlab-domain-name>/<project>
URL 访问,这意味着您可以完全控制内容。
请注意 CI 中的页面作业不需要任何脚本,它只需要与作业名称一起出现 "pages"。这是一个触发页面发布的神奇作业名称。您可能想要添加作业限制,以便仅在主分支管道上 运行s。
我可以添加页面发布到现有项目吗?
是的。任何创建要发布的内容的步骤都应将内容写入 public
子目录,并将 public
目录注册为工件目录。
my job:
stage: build
script:
- echo "Do some things and write them to public directory" > public/index.html
artifacts:
paths:
- public
expire_in: 2 weeks
注意:我喜欢添加 expire_in: 2 weeks
以限制工件保留的时间长度。页面发布后,就不再需要工件了。
最后您需要添加一个 pages
作业来触发页面发布:
# This job does nothing but collect artifacts from other jobs and triggers the pages build
# The artifacts are picked up by the pages:deploy job.
pages:
stage: deploy
script:
- ls -l public
artifacts:
paths:
- public
only:
- master
通常你只想在 master 分支上发布,但你可以自由选择何时将页面发布到 运行。重要的是要注意,当页面发布 运行s 时,它将完全替换之前发布的任何内容,因此您不能附加到现有内容(尽管有一些技巧可以让您实现类似的目的) .