我尝试在docker上共享构建源(并在其上使用git fetch),但他总是在每次运行时都运行git clone(是的,我已将其配置为在CI / CD Pipelines设置中使用git fetch)。
我只想使用composer更新脚本运行构建阶段,并使用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
现在工作正常。
谢谢大家
最佳答案
除了您找到的解决方案之外,我还在这种情况下使用 Artifact (在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
也许有人觉得这个例子有用!
关于git - Gitlab CI运行程序无法在docker executor上共享构建源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43124024/