docker 中的 Gitlab CI。在阶段开始之前禁用清理目录

Gitlab CI in docker. Disable cleaning directory before stage starts

我决定根据这个计划构建我的管道:

  1. 构建阶段:运行 仅当分支是主分支或我的构建文件之一已被修改时。它继承docker:latest,并构建一个测试就绪容器(pytest,lint)并将其推送到本地注册表。
  2. 测试阶段:总是运行s,从上一阶段继承最新的或自己的分支容器。所有测试都运行在里面
  3. 投入生产:现在无所谓了。

问题 在 2 个阶段:

我 运行 ls -la 命令,但我没有看到我的 venv, node_modules 文件夹。我认为 GIT_CLEAN_FLAGS 可以解决我的问题。但是没有用。

如何重现问题:

构建图像

FROM python:3.7-slim
ARG CI_PROJECT_DIR
WORKDIR $CI_PROJECT_DIR
RUN pip install -r requirements.txt
build:
  stage: build
  tags:
    - build
  script:
    - docker build --build-arg CI_PROJECT_DIR=$CI_PROJECT_DIR .

测试

lint:
  variables:
    GIT_CLEAN_FLAGS: none
  stage: test
  tags:
    - test
  script:
    - pwd
    - ls -lah

您不需要使用 CI_PROJECT_DIR。将您的代码保存在另一个目录中: /my-app 例如。
在你的第二阶段使用 cd /my-app.

第二阶段的代码示例:

test:
  stage: test
  tags:
    - test
  before_script:
    - cd /my-app
  script:
    - pwd
    - ls -lah