如何使用gitlabci管理相互依赖车轮的测试/构造

2024-06-01 14:49:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有3个python包proj1proj12和{}。proj12proj13依赖于proj1(使用from proj1.xxx import yyy)。在

这3个项目都在一个私有的gitlab实例上,每个项目都有自己的.gitlab-ci。在

proj1http://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

对于proj12proj13,例如。 http://gitlab.me.com/group/proj12/.gitlab-ci.yml我们想运行测试 同样,但是我需要安装proj1轮子来运行它。在

所有3个项目都在同一个gitlab私有组中。在

gitlab的方法是什么?在

  • proj1轮子传递给带有artifactproj12
    • 在这种情况下,我不知道如何调用/获取工件 http://gitlab.me.com/group/proj12/.gitlab-ci.yml?是同一个gitlab 同一组,但不同的项目。在
  • 使用gitlab秘密变量ssh_keys存储在^{中克隆proj2

我尽量避免部署devpi或类似pypiserver的解决方案。在

所以我想在proj12中写些什么来获得 dist/proj1-0.42-py2-none-any.whl来自proj1先例构建的轮子:

^{pr2}$

与我们的问题相关的链接:


Tags: 项目httpsorgcomciymlgitlabgroup
1条回答
网友
1楼 · 发布于 2024-06-01 14:49:38

有两种方法可以做到:

我建议从那时起,作为一个工件传递,你将在你运行的管道中构建它。至于克隆,AFAIK克隆子模块时不需要任何解决方法,但是对于克隆其他存储库,我将使用ssh deploy key,因为它与repo连接,而不是像私有令牌那样的用户。在

相关问题 更多 >