我有一个GitLab项目,如下所示:

在构建第一api和第二api期间,我将需要执行数据库迁移,以便能够与作为服务启动的数据库运行集成测试。
由于存储库是公共的,所以我试图克隆数据库--迁移,构建,然后执行。不巧的是,它在克隆步骤上失败了。这是我的..gitlab ci.yml:
init_db:
stage: build
script:
- git clone https://gitlab.com/groupname/database-migration.git
- cd database-migration
- mvn exec:java我知道这个错误:
$ git clone https://gitlab.com/groupname/database-migration.git
Cloning into 'database-migration'...
fatal: could not read Username for 'https://gitlab.com': No such device or address
ERROR: Job failed: exit code 1这是正确的做法,还是有更好的解决办法?如果这是正确的方法,我如何使它工作?
编辑,尝试子模块
在输入应该使用子模块之后,我改变了我的方法。我向first-api添加了一个文件.gitmodules,如下所示:
[submodule "database-migration"]
path = database-migration
url = ../database-migration.git在.gitlab-ci.yml中,我有以下内容:
image: maven:latest
variables:
GIT_SUBMODULE_STRATEGY: recursive
init_db:
stage: build
script:
- ls
- cd database-migration
- mvn exec:java作业失败,因为文件夹“数据库迁移”不存在。
如果您想查看存储库,可以找到这里。我试图在“游戏-rest-api”中使用子模块。
我做错了什么?
发布于 2018-02-16 19:27:45
您可以将数据库迁移作为first-api的子模块。请参阅submodules.html
别忘了加
variables:
GIT_SUBMODULE_STRATEGY: recursive致..gitlab ci.yml
即
git clone git@gitlab.com:groupname/first-api.git cd first-api.git git submodule add git@gitlab.com:groupname/database-migration.git
nano gitmodules
将git@gitlab.com:groupname/database-migration.git替换为../../groupname/database-migration.git
variables: GIT_SUBMODULE_STRATEGY: recursive
致..gitlab ci.yml
git commit -am "Add submodule" git push
https://stackoverflow.com/questions/48815280
复制相似问题