2017-01-06 3 views
1

CI 테스트에서 특정 러너 (내 PC에서 작동하는 "공유 러너"가 아닌)를 사용하여 내 앱의 스크린 샷을 만들고 싶습니다.특정 gitlab-runner에서 CI 테스트로 만든 스크린 샷에 액세스하는 방법

기본 도커 러너입니다. builds_dir을 전체 경로 /home/myuser/mybuilds과 함께 실행기 구성에 전달하려고 시도했지만 테스트가 성공적으로 완료되면 폴더가 비어 있습니다. (이 구축 상대가 아닌 리눅스 경로를 보인다)

스크린 샷은 아마 촬영하지만 경로가 상대적으로 : 그래서 고정 표시기에서 빌드 후 빌드 폴더에 액세스하는 방법을

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에 가지 않고도 더 빨리 또는 로컬로 볼 수있는 방법? 당신의 고정 표시기 실행 명령에 -v /some/local/path:/data/screenshots:rw : 그것은 당신의 서버에 있다면

답변

1

당신은 뭔가를 추가 할 수 있습니다. 그것은 당신의 서버에있는 마운트 로컬 디렉토리를 컨테이너의/data/screenshots에 바인드 할 것입니다. 그러면 거기에 저장 한 모든 것이 로컬 디렉터리에 나타납니다. 당신은 당신이 docker cp를 사용하여 파일을 복사 할 수 볼륨을 추가하지 않으려면

+0

문제는 gitlab-runner 빌드가 포함 된 로컬 경로를 찾을 수 없다는 것입니다. 어떤 아이디어? – Mike

+1

'docker diff '를 사용하여 컨테이너를 시작한 이후 컨테이너에서 변경된 모든 것을 나열합니다. 빌드가 끝나면 거기에 결과가 표시됩니다. 에이전트 컨테이너를 사용하면 기본적으로 모든 결과가 해당 컨테이너에 저장됩니다. 호스트에 "추출"해야합니다. IMHO 가장 간단한 방법은 호스트에서 바인드 마운트 dir 것입니다. 다음과 같은 출력으로 질문을 업데이트하십시오 :'docker diff | grep testimages' 및'docker run' 명령을 사용하여 빌드 컨테이너를 시작할 수 있습니다. 그러면 정확한 답을 제공 할 수 있습니다. – odk

0

:

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

당신은 docker ps와 컨테이너 ID를 찾을 수 있습니다.