2017-01-06 5 views
1

特定のランナーを使用してCIテストで自分のアプリケーションのスクリーンショットを作りたいと思います。特定のgitlabランナーのCIテストで作成されたスクリーンショットにアクセスする方法

基本的なドッカーランナーです。 builds_dirをフルパス/home/myuser/mybuildsのランナー設定に渡そうとしましたが、テストが成功した後は、このフォルダは空です。

のスクリーンショットは、おそらく取られるされているが、パスが相対的であるように見える。:

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

ドッキングウィンドウにビルド後のビルドフォルダにアクセスするには、どのように(Linuxのパスではありません、構築するためにその相対的と思われます) ? gitlab-ci.yml

mytest 
    script: 
    - mytests 
    artifacts: 
    paths: 
    -testimages 


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.comからイメージをダウンロードしますがあります:私はこのようなartifactsを使用することができ

EDIT
gitlab.comに行かなくても、より速く、ローカルで視聴できる方法?

答えて

1

サーバー上にある場合は、 -v /some/local/path:/data/screenshots:rw のようなものをdocker runコマンドに追加できます。それはあなたのサーバ上のマウントローカルdirをコンテナ内の/ data/screenshotsにバインドします。あなたがそこに保存したものはすべて、地元の地方に現れます。あなたはdocker cpを使用してファイルをコピーすることができ、ボリュームを追加しない場合

+0

問題は、gitlab-runnerビルドを含むローカルパスが見つかりません。何か案は? – Mike

+1

'docker diff 'を使用して、コンテナを起動してからコンテナ内で変更されたすべてのものを表示します。ビルドしたら、そこに結果が表示されます。エージェントコンテナを使用すると、デフォルトですべての結果がそのコンテナに格納されます。それらをホストに「抽出」する必要があります。 IMHOの最も単純な方法は、ホストからのbindマウントdirです。 'docker diff の出力で質問を更新してください。ビルドコンテナの起動に使用するgrep testimages'と 'docker run'コマンドです。それから私は正確な答えを提供することができます。 – odk

0

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

あなたはdocker psを使用してコンテナIDを見つけることができます。

関連する問題