Gitlab CI 运行器无法在 docker 执行器上共享构建源
Gitlab CI runner unabled to shared build sources on docker executor
我尝试在 docker 上共享构建源(并在其上使用 git 获取),但他总是 运行 每个 git 克隆 运行(是的,我已将其配置为在 CI/CD 管道设置上使用 git 提取)。
我只想 运行 一个带有 composer 更新脚本的构建阶段,以及一个带有 phing (phpunit, ...) 的测试阶段。在构建阶段一切正常(git 克隆除外),在测试阶段,他没有使用之前的相同源并再次克隆源...
我知道我需要与 docker 容器共享我的卷,但我不知道如何使用 gitlab CI !?
我的会议:.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
现在可以正常使用了。
谢谢大家,
除了您找到的解决方案之外,我还针对此场景使用了 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
也许有人觉得这个示例很有用!
我尝试在 docker 上共享构建源(并在其上使用 git 获取),但他总是 运行 每个 git 克隆 运行(是的,我已将其配置为在 CI/CD 管道设置上使用 git 提取)。
我只想 运行 一个带有 composer 更新脚本的构建阶段,以及一个带有 phing (phpunit, ...) 的测试阶段。在构建阶段一切正常(git 克隆除外),在测试阶段,他没有使用之前的相同源并再次克隆源...
我知道我需要与 docker 容器共享我的卷,但我不知道如何使用 gitlab CI !?
我的会议:.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 现在可以正常使用了。
谢谢大家,
除了您找到的解决方案之外,我还针对此场景使用了 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
也许有人觉得这个示例很有用!