我有3个python包proj1
,proj12
和proj13
。 proj12
和。proj13
proj1
取决于from proj1.xxx import yyy
(.gitlab-ci
)。
3个项目位于私有gitlab实例上,每个实例都有自己的http://gitlab.me.com/group/proj1/.gitlab-ci.yml
。
在 proj1 # http://gitlab.me.com/group/proj1/.gitlab-ci.yml
image: python:2
mytest:
artifacts:
paths:
- dist
script:
- apt-get update -qy; apt-get install -y python-dev python-pip
- pip install -r requirements.txt
- python setup.py test
- python setup.py bdist_wheel
look:
stage: deploy
script:
- ls -lah dist
中,我们运行unittest
并创建一个暴露为工件的轮子::
http://gitlab.me.com/group/proj12/.gitlab-ci.yml
对于 proj12 和 proj13 ,例如
proj1
我们想要进行测试
我也需要安装proj1
轮才能让它运行。
所有3个项目都在同一个gitlab私人组中。
gitlab 的方法是什么?
proj12
轮传递给http://gitlab.me.com/group/proj12/.gitlab-ci.yml
proj2
?它是同一个gitlab,
同一组,但是一个不同的项目。proj12/.gitlab-ci.yml
中克隆proj1
?
proj12
,proj13
和.gitlab-ci.yml
这一事实
dist/proj1-0.42-py2-none-any.whl
属于同一个gitlab和同一组,即构建的人
一个项目作为完成其他项目的凭据。所有3个都由用户私人令牌连接。我尽量避免必须像解决方案那样部署devpi或pypiserver。
所以,我正在查看 proj12 # http://gitlab.me.com/group/proj12/.gitlab-ci.yml
image: python:2
mytest12:
script:
- apt-get update -qy; apt-get install -y python-dev python-pip
- pip install -r requirements.txt
- pip install .
- => some way here to get the proj1 wheel
- pip install proj1-0.42-py2-none-any.whl
- python setup.py test
中要写的内容
来自proj1先例build ::
{{1}}
与我们的问题相关的链接:
答案 0 :(得分:1)
你有两种方法可以做到:
我建议传递为一个工件,从那时起你将完全构建在正在运行的管道中。至于克隆,AFAIK在克隆子模块时不需要任何解决方法,但是为了克隆其他存储库,我会使用ssh deploy key,因为它与repo连接而不是像私有令牌这样的用户。