我已经创建了一个示例 Gitlab 项目。在此项目中,我添加了一个 .gitmodules,它引用了我的 Gitlab 组中的另一个项目。
GIT_SUBMODULE_STRATEGY: recursive
我按照.gitlab-ci.yml 中的建议使用gitlab CI 文档
但是当触发这个 gitlab 作业时,子模块不会下载到作业文件夹中。
我已经检查以确保我的子模块项目有文件“此文件来自CASModbusStack.txt”并已签入到 master。
我尝试了 GIT_SUBMODULE_STRATEGY 以及 GIT_CHECKOUT、GIT_STRATEGY 的几种变体,但都没有成功。
我错过了什么?
.gitlab-ci.yml
variables:
GIT_SUBMODULE_STRATEGY: recursive
stages:
- Build
Test Build:
image: python:2.7
stage: Build
tags:
- docker
script:
- ls
- ls cas-modbus-stack
.gitmodules
[submodule "cas-modbus-stack"]
path = cas-modbus-stack
url = ../../chipkin/cas-modbus-stack.git
Gitlab 输出:
Running with gitlab-runner 11.3.1~beta.4.g0aa5179e (0aa5179e)
on docker-builder-salmon fa2708eb
Using Docker executor with image python:2.7 ...
Pulling docker image python:2.7 ...
Using docker image sha256:3c01ed1c16af3efc2b7e6faa44cfbb2eeb5f241a5ad3b57cf7c14300ed4ebef5 for python:2.7 ...
Running on runner-fa2708eb-project-4206088-concurrent-0 via docker-builder-salmon...
Fetching changes...
HEAD is now at 1e07991 Removed sudo
From https://gitlab.com/chipkin/helloworld-ci
1e07991..30cdb87 master -> origin/master
Checking out 30cdb870 as master...
Updating/initializing submodules recursively...
$ ls
README.md
$ ls cas-modbus-stack/
ls: cannot access 'cas-modbus-stack/': No such file or directory
ERROR: Job failed: exit code 1
答案1
我解决了我的问题。
我需要使用 git 将子模块添加到项目中,我不能只通过更新来手动添加它.gitmodules文件。
git submodule add ../../chipkin/cas-modbus-stack.git