如何在特定的gitlab-runner上访问CI测试中的屏幕截图

时间:2017-01-06 15:14:50

标签: docker gitlab-ci-runner

我想使用特定的跑步者(在我的电脑上工作,而不是“共享跑步者”)在CI测试中制作我的应用的屏幕截图。

它是一个基本的码头运动员。 我尝试将/home/myuser/mybuilds传递给带有完整路径app.browserWindow.capturePage().then(function (imageBuffer) { fs.writeFile('/home/myuser/mybuilds/page-full-path.png', imageBuffer) }) 的转轮配置,但在成功测试后,该文件夹为空。 (它似乎与构建有关,而不是linux路径)

可能会拍摄截图,但路径似乎是相对的。:

artifacts

那么如何在docker中构建后访问build文件夹?

修改
我可以像这样使用app.browserWindow.capturePage().then(function (imageBuffer) { console.log("This test path"); console.log(path.join(__dirname)); var mypath = path.join(__dirname, '../..', 'testimgages', "test.png"); fs.writeFile(mypath, imageBuffer) })

mytest
  script:
  - mytests
  artifacts:
    paths:
    -testimages

然后在gitlab-ci.yml

{{1}}

然后从gitlab.com下载图片,但有没有办法让它更快或本地观看而无需访问gitlab.com?

2 个答案:

答案 0 :(得分:1)

如果它在您的服务器上,那么您可以添加如下内容: -v /some/local/path:/data/screenshots:rw 你的docker run命令。它会将服务器上的mount local dir绑定到容器中的/ data / screenshots。然后你在那里保存的所有内容都将显示在本地目录中。

答案 1 :(得分:0)

如果您不想添加音量,可以使用docker cp复制文件:

docker cp <containerId>:/data/screenshots /local/path

您可以使用docker ps找到您的容器ID。