Buildkite Docker Cypress-工件删除权限
我正在为CI使用buildkite并运行测试,在删除工件文件夹时遇到问题。 在我的buildkite管道中,我迈出了清理git回购的第一步Buildkite Docker Cypress-工件删除权限,docker,docker-compose,cypress,buildkite,Docker,Docker Compose,Cypress,Buildkite,我正在为CI使用buildkite并运行测试,在删除工件文件夹时遇到问题。 在我的buildkite管道中,我迈出了清理git回购的第一步 git clean -fxdq -e node_modules/ 在没有柏树测试的情况下也能正常工作。现在我得到: 警告:无法删除e2e/工件/屏幕截图:权限被拒绝 警告:无法删除e2e/artifacts/video/test.spec.js.mp4:权限被拒绝 我正在使用docker compose(带有buildkite插件)和docker dock
git clean -fxdq -e node_modules/
在没有柏树测试的情况下也能正常工作。现在我得到:
警告:无法删除e2e/工件/屏幕截图:权限被拒绝
警告:无法删除e2e/artifacts/video/test.spec.js.mp4:权限被拒绝
我正在使用docker compose(带有buildkite插件)和docker
docker-compose.yml:
version: '3.8'
services:
cypress:
image: my-cypress:latest
build:
context: .
dockerfile: Dockerfile.cypress
# This handles other weirdness with Docker and Electron
ipc: host
environment:
- VERSION
- SPECS
- BUILDKITE_BUILD_ID
- CYPRESS_PASSWORD
- CYPRESS_EMAIL
- CYPRESS_PROJECT_NAME
volumes:
- ./artifacts/video/:/opt/e2e/cypress/videos/
- ./artifacts/screenshots/:/opt/e2e/cypress/screenshots/
command: "yarn cypress:run:test"
我的dockerfile:
FROM cypress/base:14.10.1
# This helps to clean up the console output
ENV CI=1
# Proceed with installing Node dependencies
RUN mkdir -p /opt/e2e/
WORKDIR /opt/e2e/
COPY package.json /opt/e2e/
COPY yarn.lock /opt/e2e/
RUN yarn install --frozen-lockfile
# Copy over application code and installed node_modules
COPY . /opt/e2e
WORKDIR /opt/e2e
# Verify Cypress installation worked
RUN ./node_modules/.bin/cypress verify
和管道.yml
steps:
- label: ':npm: :docker: Step 2'
plugins:
- docker-compose#v3.7.0:
run: cypress
config: e2e/docker-compose.e2e.yml
# propagate-uid-gid: true
env:
VERSION: '$BUILDKITE_BUILD_ID'
SPECS: '$SPECS'
BASE_URL: '$BASE_URL,'
CYPRESS_PASSWORD: '$CYPRESS_PASSWORD'
CYPRESS_EMAIL: '$CYPRESS_EMAIL'
CYPRESS_PROJECT_NAME: '$CYPRESS_PROJECT_NAME'
- artifacts#v1.3.0:
upload: ['./e2e/artifacts/*', './e2e/artifacts/**/*']
我尝试了什么:
设置传播uid gid
标志。错误地打破了我的柏树:
已安装cypress npm包,但缺少cypress二进制文件。
我们希望二进制文件安装在这里:/.cache/Cypress/3.8.0/Cypress/Cypress
我尝试设置CYPRESS\u CACHE\u文件夹
env变量,但没有成功。然后我也有纱线缓存的问题
警告:跳过首选缓存文件夹“/.cache/thread”,因为它不可写
主进程中发生JavaScript错误
未捕获异常:
错误:无法获取“appData”路径
在App.l._setDefaultAppPath(electron/js2c/browser_init.js:5:1420)
反对。(electron/js2c/browser_init.js:205:2348)
在Object../lib/browser/init.ts(electron/js2c/browser_init.js:205:3577)
在网页上需要(electron/js2c/browser\u init.js:1:128)
在electron/js2c/browser_init.js:1:1200
在electron/js2c/browser_init.js:1:1267
在NativeModule.compile(internal/bootstrap/loaders.js:287:5)
在NativeModule.compileForPublicLoader(internal/bootstrap/loaders.js:222:8)
在loadNativeModule(内部/modules/cjs/helpers.js:23:9)
at模块加载(内部/modules/cjs/loader.js:698:15)
我花了很多时间在这上面,我完全迷路了。我不是docker专家,所以可能我遗漏了什么。谢谢你的帮助
有没有办法在上传后立即轻松删除工件
A JavaScript error occurred in the main process
Uncaught Exception:
Error: Failed to get 'appData' path
at App.l._setDefaultAppPaths (electron/js2c/browser_init.js:5:1420)
at Object.<anonymous> (electron/js2c/browser_init.js:205:2348)
at Object../lib/browser/init.ts (electron/js2c/browser_init.js:205:3577)
at __webpack_require__ (electron/js2c/browser_init.js:1:128)
at electron/js2c/browser_init.js:1:1200
at electron/js2c/browser_init.js:1:1267
at NativeModule.compile (internal/bootstrap/loaders.js:287:5)
at NativeModule.compileForPublicLoader (internal/bootstrap/loaders.js:222:8)
at loadNativeModule (internal/modules/cjs/helpers.js:23:9)
at Module._load (internal/modules/cjs/loader.js:698:15)