Gitlab CI runner无法在docker executor上共享构建源代码

时间:2017-03-30 16:56:57

标签: git docker gitlab-ci gitlab-ci-runner

我尝试在docker上共享构建源代码(并在其上使用git fetch),但他总是在每次运行时运行git clone(是的,我已将其配置为在CI / CD管道设置上使用git fetch )。

我只想运行一个带有作曲家更新脚本的构建阶段,以及一个带phing的测试阶段(phpunit,...)。在构建阶段,一切正常(除了git clone),在测试阶段,他没有使用之前相同的源并再次克隆源...

我知道我需要与docker容器共享我的音量,但我不知道如何使用gitlab CI来制作它?

我的conf:.gitlab-ci.yml

image: webdevops/php:centos-7-php7

stages:
  - build
  - test

build:
  script:
    - composer --working-dir=/builds/MyGroup/MyProject update

test:
  script:
    - php /builds/MyGroup/MyProject/vendor/bin/phing

编辑:经过一天的搜索,我终于找到了这个文档:https://docs.gitlab.com/runner/executors/docker.html#the-persistent-storage 现在它工作正常。

全心全意,

1 个答案:

答案 0 :(得分:1)

除了你找到的解决方案之外,我还在这个场景中使用Artifacts(使用Gitlab.com中的共享运行器)。构建src,将其推送到Gitlab并在下一个构建步骤下载该文件。

build:
  environment: production
  stage: build
  image: image_used_for_builds
  script:
    - # steps to build
  artifacts:
     name: "myapplication-${CI_BUILD_REF_NAME}-${CI_BUILD_ID}-production"
     paths:
      - vendor/src
      - run.whatever
     when: on_success


# this step will download the preivous created files to deploy them
  deploy:
   stage: deploy
   environment: production
   script:
     - run-deploy.sh
   dependencies:
     - build # this will download the artifacts

也许有人认为这个例子很有用!