我正在使用src
管道运行一些测试并生成覆盖率报告.
我想要做的是能够将生成的coverage文件夹(包括html页面和gitlab.io
文件夹)发布到某个内部my.local.gitlab.server/mynamespace/thepagesproject
静态页面,可由某些团队成员查看.
我知道gitlab页面的概念,但步骤表明我必须为此目的使用静态站点生成器.
我的问题如下:
这个概念只有在官方gitlab网站上发布时才可用(index.html
或者我可以使用我的内部src
安装(即我的网页可用gitlab.io
)吗?
我可以上传一个my.local.gitlab.server/mynamespace/thepagesproject
包含其内容文件夹的文件并使其可访问吗?
什么是使用EXISTING项目的最佳方式,以便只添加一些html页面(理想情况下我想避免为此目的创建一个新项目)
JGC..
9
我可以在自托管实例上使用GitLab Pages吗?
是的,GitLab Pages适用于自托管实例.*.pages.
如果您仅通过https运行gitlab,则可能需要为其注册通配符域名,并生成SSL证书.
获得域名后,编辑/etc/gitlab/gitlab.rb
并添加额外设置,然后运行gitlab-ctl reconfigure
(pages_nginx
如果仅运行http,则省略设置:
gitlab_pages['enable'] = true
pages_external_url "https://pages."
pages_nginx['redirect_http_to_https'] = true
pages_nginx['ssl_certificate'] = "/etc/gitlab/ssl/pages..crt"
pages_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/pages..key"
完成后,您将能够通过访问每个项目页面 .pages./
我可以上传任何我想要的页面吗?
是.每个GitLab CI作业都可以创建要在GitLab页面中发布的内容,方法是将其写入public
文件夹,然后注册public
为工件目录.pages
应该将最终作业添加到CI管道中,从而导致页面内容被发布(覆盖之前的任何内容).public
目录的所有内容都可以通过.pages./
URL获得,这意味着您可以完全控制内容.
请注意,CI中的页面作业不需要任何脚本,只需要与作业名称"pages"一起出现.这是一个触发页面发布的魔术作业名称.您可能希望添加作业限制,以便仅在主分支管道上运行.
我可以将页面发布添加到现有项目吗?
是.创建要发布的内容的任何步骤都应将内容写入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
通常,您只想在主分支上发布,但您可以自由选择何时运行页面发布.值得注意的是,当页面发布运行时,它将完全替换以前发布的任何内容,因此您无法附加到现有内容(尽管有一些黑客可以让您实现类似的功能).
1> JGC..:
我可以在自托管实例上使用GitLab Pages吗?
是的,GitLab Pages适用于自托管实例.*.pages.
如果您仅通过https运行gitlab,则可能需要为其注册通配符域名,并生成SSL证书.
获得域名后,编辑/etc/gitlab/gitlab.rb
并添加额外设置,然后运行gitlab-ctl reconfigure
(pages_nginx
如果仅运行http,则省略设置:
gitlab_pages['enable'] = true
pages_external_url "https://pages."
pages_nginx['redirect_http_to_https'] = true
pages_nginx['ssl_certificate'] = "/etc/gitlab/ssl/pages..crt"
pages_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/pages..key"
完成后,您将能够通过访问每个项目页面 .pages./
我可以上传任何我想要的页面吗?
是.每个GitLab CI作业都可以创建要在GitLab页面中发布的内容,方法是将其写入public
文件夹,然后注册public
为工件目录.pages
应该将最终作业添加到CI管道中,从而导致页面内容被发布(覆盖之前的任何内容).public
目录的所有内容都可以通过.pages./
URL获得,这意味着您可以完全控制内容.
请注意,CI中的页面作业不需要任何脚本,只需要与作业名称"pages"一起出现.这是一个触发页面发布的魔术作业名称.您可能希望添加作业限制,以便仅在主分支管道上运行.
我可以将页面发布添加到现有项目吗?
是.创建要发布的内容的任何步骤都应将内容写入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
通常,您只想在主分支上发布,但您可以自由选择何时运行页面发布.值得注意的是,当页面发布运行时,它将完全替换以前发布的任何内容,因此您无法附加到现有内容(尽管有一些黑客可以让您实现类似的功能).