Gitlab CI: 找不到构建阶段的输出
Gitlab CI: Cannot find output of build stage
我在典型的三个阶段设置了 .gitlab-ci.yml 文件:测试、构建、部署。在构建阶段,我 运行 编译我的项目并将其放入压缩包中的命令。构建阶段似乎执行成功,因为它进入了部署阶段,但部署阶段随后表示找不到 tarball。它在另一个目录中吗?这是怎么回事?谢谢
对于每个测试 gitlab-ci 清理构建文件夹,因此构建阶段的输出文件在部署阶段不可用。
您还需要在部署阶段重建您的项目。
"stages" 仅对订购测试有用,即避免在构建测试失败时尝试进行部署测试。
编辑:
从 Gitlab 8.6 开始,可以使用 dependencies feature
我很惊讶地看到相同的行为(在 GitLab 8.4 上)。
我使用 cmake
创建 makefile,然后 make
构建,然后 make test
运行 测试。我 运行 所有这些都在 build/
目录中。
我不想重复自己,也不想轻易确定哪些步骤失败了。因此,我创建了不同的 gitlab-ci 阶段 :cmake
、make
、test
等。然后我告诉 gitlab-ci 使用 cache
选项保留 build
目录:
cache:
key: "$CI_BUILD_REF_NAME"
untracked: true
paths:
- build/
我认为 key
选项将为作用于同一分支的所有阶段保持相同的构建目录。请在此处查看 gitlab-ci 文档:http://doc.gitlab.com/ce/ci/yaml/README.html#cache
编辑:不要为此使用 cache
! GitLab 在 8.4 的阶段之间实现了可重用的工件:https://gitlab.com/gitlab-org/gitlab-ce/issues/3423
CI 运行 用户将不得不进行调整以支持此功能。参见:https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/336
我在典型的三个阶段设置了 .gitlab-ci.yml 文件:测试、构建、部署。在构建阶段,我 运行 编译我的项目并将其放入压缩包中的命令。构建阶段似乎执行成功,因为它进入了部署阶段,但部署阶段随后表示找不到 tarball。它在另一个目录中吗?这是怎么回事?谢谢
对于每个测试 gitlab-ci 清理构建文件夹,因此构建阶段的输出文件在部署阶段不可用。
您还需要在部署阶段重建您的项目。
"stages" 仅对订购测试有用,即避免在构建测试失败时尝试进行部署测试。
编辑: 从 Gitlab 8.6 开始,可以使用 dependencies feature
我很惊讶地看到相同的行为(在 GitLab 8.4 上)。
我使用 cmake
创建 makefile,然后 make
构建,然后 make test
运行 测试。我 运行 所有这些都在 build/
目录中。
我不想重复自己,也不想轻易确定哪些步骤失败了。因此,我创建了不同的 gitlab-ci 阶段 :cmake
、make
、test
等。然后我告诉 gitlab-ci 使用 cache
选项保留 build
目录:
cache:
key: "$CI_BUILD_REF_NAME"
untracked: true
paths:
- build/
我认为 key
选项将为作用于同一分支的所有阶段保持相同的构建目录。请在此处查看 gitlab-ci 文档:http://doc.gitlab.com/ce/ci/yaml/README.html#cache
编辑:不要为此使用 cache
! GitLab 在 8.4 的阶段之间实现了可重用的工件:https://gitlab.com/gitlab-org/gitlab-ce/issues/3423
CI 运行 用户将不得不进行调整以支持此功能。参见:https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/336