2017-01-06 89 views
1

CI測試搞得我想讓我的應用程序的屏幕截圖在使用特定的亞軍(其個人電腦上工作,它不是「共享亞軍」)CI測試的屏幕截圖。如何訪問特定的gitlab亞軍

它是一種基本的碼頭工人亞軍。 我試圖通過builds_dir到完整路徑/home/myuser/mybuilds的runner配置,但成功測試後,該文件夾爲空。 (看來其相對打造,而不是Linux的路徑)

很可能要採取的截圖,但路徑似乎是相對的:

app.browserWindow.capturePage().then(function (imageBuffer) { 
      fs.writeFile('/home/myuser/mybuilds/page-full-path.png', imageBuffer) 
     }) 

因此,如何在泊塢窗構建之後訪問生成文件夾?

編輯
我可以用artifacts這樣的:

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) 
}) 

,然後在gitlab-ci.yml

mytest 
    script: 
    - mytests 
    artifacts: 
    paths: 
    -testimages 

,然後從gitlab.com下載圖像,但是有無需轉到gitlab.com就可以更快速或本地查看的方法?

回答

1

如果它在您的服務器上,那麼您可以添加如下內容: -v /some/local/path:/data/screenshots:rw 到您的docker run命令。它會將服務器上的mount本地目錄綁定到容器中的/ data/screenshots。然後你保存的所有東西都會出現在本地目錄中。

+0

問題是我找不到包含gitlab-runner構建的本地路徑。有任何想法嗎? – Mike

+1

使用'docker diff '列出自啓動它以來在容器中更改的所有內容。建立後,你應該在那裏看到你的結果。當您使用代理容器時,默認情況下所有結果都會在該容器中。你需要「提取」他們的主機。恕我直言,最簡單的方法是從主機綁定安裝目錄。輸出更新問題:'docker diff | grep testimages'和'docker run'命令,用於啓動構建容器。然後我將能夠提供確切的答案。 – odk

0

如果你不想添加量,你可以使用docker cp複製文件:

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

你可以找到你docker ps容器ID。