繁体   English   中英

如何从 Gitlab 跑步者复制工件?

[英]How do I copy over artifacts from Gitlab runner?

我正在尝试将失败测试的视频复制到 gitlab 的默认工件位置。

.gitlab-ci.yml

image: docker:20-dind

services:
   - name: docker:20-dind
     command: ["--tls=false"]

variables:
  DOCKER_DRIVER: overlay2
  DOCKER_HOST: tcp://docker:2375
  DOCKER_TLS_CERTDIR: ""
  POSTGRES_DB: users_dev
  POSTGRES_USER: postgres
  POSTGRES_PASSWORD: postgres
  POSTGRES_HOST: postgres
  REACT_APP_USERS_SERVICE_URL: http://127.0.0.1
  SECRET_KEY: ""
  #RUNNING_LOCALLY: "yes"

stages:
  - build

before_script:
  - apk update
  - apk add --no-cache --update python3-dev py3-pip curl
  - curl -L https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-`uname -s`-`uname -m` > docker-compose
  - chmod +x docker-compose
  - mv docker-compose /usr/local/bin

build:
  artifacts:
    paths:
      - videos/
    when: on_failure
  stage: build
  script:
    - mkdir -p videos
    - sh test.sh

日志 output:

  • 完成处理:/e2e/cypress/videos/register.spec.js.mp4

我正在使用卷将容器目录的内容绑定到 gitlab 的工件默认目录:

docker run --name e2e -v "$(pwd)"/e2e/cypres/videos -w./videos --network project-0_default project-0_e2e:latest

问题是我只能下载videos目录。 里面没有视频。

有什么帮助吗?

我假设docker run...命令在您的test.sh文件中,如果我理解正确,您在 docker 中使用 docker。 你可能有这样的配置: https://docs.gitlab.com/runner/install/docker.html#option-1-use-local-system-volume-mounts-to-start-the-runner-container

配置-v /var/run/docker.sock:/var/run/docker.sock是使 docker-in-docker 工作的原因。 但是有一个问题:您的所有 docker 命令都将由主机执行,而不是由您的 docker 容器执行。

因此,当您尝试执行命令docker run...时,主机会执行此操作。 这意味着您尝试挂载的每条路径都将属于主机而不是容器。 主机中不存在路径-v "$(pwd)"/e2e/cypres/videos ,这就是您得到一个空文件夹的原因。

也许您可以在管道中使用多个作业来获得想要的行为(您将无法依赖 docker-compose 来设置您的服务依赖项,而是使用 gitlab services关键字。)

services:
  - postgres:12.2-alpine

stages:
 - build
 - test

build:
  stage: build
  script:
   - docker build . -t project-0_e2e:latest
   - docker push 

test:
  stage: test
  image: project-0_e2e:latest
  script:
   - npx cypress run
  artifacts:
    when: always
    paths:
      - cypress/videos/**/*.mp4
      - cypress/screenshots/**/*.png

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM