[英]How to use gitlab-ci to manage test/construction of interdependent wheels
我有3个python包proj1
, proj12
和proj13
。 proj12
和proj13
依赖于proj1
( from proj1.xxx import yyy
)。
这3个项目位于私有gitlab实例上,每个实例都有自己的.gitlab-ci
。
在proj1 http://gitlab.me.com/group/proj1/.gitlab-ci.yml
我们运行unittest并创建一个作为工件暴露的轮子::
# 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
对于例如http://gitlab.me.com/group/proj12/.gitlab-ci.yml
proj12和proj13 ,我们也想运行测试,但我需要安装proj1
wheel才能运行它。
所有3个项目都在同一个gitlab私有组中。
什么是gitlab方法呢?
proj1
轮传递给proj12
http://gitlab.me.com/group/proj12/.gitlab-ci.yml
调用/获取工件? 它是同一个gitlab,同一个组,但是一个不同的项目。 proj2
在proj12/.gitlab-ci.yml
?
proj1
, proj12
和proj13
属于同一个gitlab和同一组的事实, proj12
一个项目构建的人作为执行其他项目的凭据。 所有3个都由用户私人令牌连接。 我尽量避免必须像解决方案那样部署devpi或pypiserver。
所以我正在寻找在proj12 .gitlab-ci.yml
写什么来从proj1先例build ::获取dist/proj1-0.42-py2-none-any.whl
轮
# 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
与我们的问题相关的链接:
你有两种方法可以做到:
我会建议传递为一个工件,从那时起你将完全构建在正在运行的管道中。 至于克隆,AFAIK在克隆子模块时不需要任何解决方法,但是为了克隆其他存储库,我会使用ssh deploy key,因为它与repo连接而不是像私有令牌这样的用户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.