我已经为给定的作业在artifacts文件夹下生成了HTML报告,现在我想让HTML报告在Nginx托管的Web服务器之一(http://some_domain_name:8080)中可用。
我的.yml
文件如下所示:
job:
artifacts:
name: "artifact_name"
paths:
- artifacts
expire_in: 7 days
我想我可以使用下面的API下载工件并提取html报告:
curl --location --output artifacts.zip --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/jobs/42/artifacts"
有没有一种方法可以让我们配置.yml
文件,使来自artifacts文件夹的html文件在nginx web服务器上可用?
提前感谢!
1条答案
按热度按时间qyswt5oh1#
我假设你正在使用self-manager runners的内部GitLab示例,考虑到你的GitLab运行器需要网络访问(例如,SSH访问)到你的NGiNX服务器。
如果是这样的话,那么在下载工件之后,您确实可以:
scp
或rsync
等工具将HTML文件从GitLab运行器移动到Nginx服务器。这个流水线步骤应该在您当前的产生工件的作业之后执行,或者您可以将上面的步骤添加到您当前的作业脚本中。
您需要替换:
username@nginx_server_ip
应该替换为Nginx服务器的实际用户名和IP地址(或域)。/path/to/nginx/root/directory/
应该替换为Nginx提供静态文件的实际路径。您需要将runner的公钥添加到Nginx服务器上目标用户的
~/.ssh/authorized_keys
文件中。添加
StrictHostKeyChecking=no
是为了避免手动验证Nginx服务器的指纹。虽然这简化了过程,但这是用于 * 测试 *,因为它可能存在安全风险。提前将Nginx服务器的SSH指纹添加到GitLab runner的已知主机中更安全(如Pablo Daniel González中的“GitLab CI — SSH with Passphrase deploy example”)。