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