来自gitlab私有仓库的Tox安装包

u3r8eeie  于 2023-01-28  发布在  Git
关注(0)|答案(1)|浏览(153)

我正在使用gitlab在一个自托管的gitlab示例上的ci/cd管道中运行测试。我开发了一个自定义软件包,它在setup.py中安装requirements.txt中列出的一些依赖项。除了这些依赖项,还有另一个我开发的自定义软件包。我的ci/cd文件

stages:
  - check


before_script:
    # here you can run any commands before the pipelines start
    - apt-get -qq update && apt-get -qq install -y python3.9
    - apt-get install -y libpq-dev &&  apt-get install -y python3.9-dev
    - apt-get install -y build-essential && apt-get install -y gcc && apt-get install -y postgresql
    - apt-get install -y  postgresql-contrib && apt-get install -y  ffmpeg libsm6 libxext6
    - pip install tox

check:
  stage: check
  image: gitlabds.xxxx.com:5050/xxxxx/buildimage:latest
  environment: prod
  services:
    - name: docker:19.03.8-dind #20.10.7
      alias: docker
  only:
    - master
  script:
    - tox

Tox.ini

[tox]
envlist =
    {python3.9}

[testenv]
passenv = *
setenv =
    variable i need
deps=
    pytest
    -rrequirements.txt
commands=
    pytest

requirements.txt:

certifi==2020.6.20
chardet==3.0.4
curlify==2.2.1
facebook-business==13.0.0
facebookads==2.11.4
idna==2.10
mock==4.0.2
numpy==1.19.0
pandas==1.4.2
psycopg2==2.9.3
pycountry==20.7.3
python-dateutil==2.8.1
pytz==2020.1
requests==2.24.0
six==1.15.0
urllib3==1.25.10
emoji==0.6.0
vertica-python==0.8.0
pip==20.2
PyYAML==5.3.1
proto-plus==1.19.6
MarkupSafe==1.1.1
joblib==0.16.0
Jinja2==2.11.2
six==1.15.0
jinjasql==0.1.8
multiprocessing_logging==0.3.1
google-ads==15.1.1
loguru==0.5.3
python-facebook-api-custom @ git+https://gitlabds.xxxxx.com/datascience/python-facebook-custom.git

毒检结果显示

Running command git clone --filter=blob:none --quiet https://xxxxx.esprinet.com/xxxx/python-facebook-custom.git

/tmp/pip-install-ty 2 wx 7 xj/python-facebook-api_9324e2e7179542a882e9b65b22d401c4致命错误:无法读取“https://www.example.com”的用户名gitlabds.esprinet.com:没有此类设备或地址
基本上他找不到用户名和密码来克隆git repo。我不能删除requirements.txt中的自定义包安装,因为否则我的自定义包将不会安装,我需要它来运行一些测试。
我是否需要在ci/cd中以变量的形式传递用户名和密码(安全与否)?这些变量应该放在哪里,应该如何命名?
谢谢

qvtsj1bj

qvtsj1bj1#

看起来GitLab和GitHub在变量和秘密方面有着相似的能力。https://docs.gitlab.com/ee/ci/variables/
我在GitHub中执行的步骤如下
1.在GitHub中设置CI/CD PAT(个人访问令牌)
1.设置一个名为CICD_GITHUB_TOKEN的密码,其中包含该PAT令牌。
1.在Git工作流env部分添加以下内容

env:
  GITHUB_TOKEN: ${{ secrets.CICD_GITHUB_TOKEN }}

我发现您的passenv = *正是我缺少的部分。

相关问题