我尝试在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 现在它工作正常。
全心全意,
答案 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
也许有人认为这个例子很有用!