首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GitLab:如何使用管道作业中另一个存储库的代码?

GitLab:如何使用管道作业中另一个存储库的代码?
EN

Stack Overflow用户
提问于 2018-02-15 19:58:05
回答 1查看 8.1K关注 0票数 0

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

在构建第一api和第二api期间,我将需要执行数据库迁移,以便能够与作为服务启动的数据库运行集成测试。

由于存储库是公共的,所以我试图克隆数据库--迁移,构建,然后执行。不巧的是,它在克隆步骤上失败了。这是我的..gitlab ci.yml:

代码语言:javascript
复制
init_db:
  stage: build
  script:
    - git clone https://gitlab.com/groupname/database-migration.git
    - cd database-migration
    - mvn exec:java

我知道这个错误:

代码语言:javascript
复制
$ 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,如下所示:

代码语言:javascript
复制
[submodule "database-migration"]
  path = database-migration
  url = ../database-migration.git

.gitlab-ci.yml中,我有以下内容:

代码语言:javascript
复制
image: maven:latest

variables:
  GIT_SUBMODULE_STRATEGY: recursive

init_db:
  stage: build
  script:
    - ls
    - cd database-migration
    - mvn exec:java

作业失败,因为文件夹“数据库迁移”不存在。

如果您想查看存储库,可以找到这里。我试图在“游戏-rest-api”中使用子模块。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-16 19:27:45

您可以将数据库迁移作为first-api的子模块。请参阅submodules.html

别忘了加

代码语言:javascript
复制
variables:
  GIT_SUBMODULE_STRATEGY: recursive

致..gitlab ci.yml

  1. 创建子模块

git clone git@gitlab.com:groupname/first-api.git cd first-api.git git submodule add git@gitlab.com:groupname/database-migration.git

  1. 编辑.gitmodules

nano gitmodules

git@gitlab.com:groupname/database-migration.git替换为../../groupname/database-migration.git

  1. 添加

variables: GIT_SUBMODULE_STRATEGY: recursive

致..gitlab ci.yml

  1. 承诺和推动

git commit -am "Add submodule" git push

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48815280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档