簡體   English   中英

如何使用 Poetry 將 Python 包部署到 Gitlab 包注冊表?

[英]How to deploy Python packages to Gitlab Package Registry with Poetry?

我正在嘗試設置Poetry以將包部署到我們內部的 Gitlab 包注冊表。 根據在線的其他來源,存儲庫 ID 應為https://gitlab.com/api/v4/projects/<project id>/packages/pypi ,但無論我嘗試什么,Poetry 都會返回

[上傳錯誤]
HTTP 錯誤 404:未找到

任何人得到這個工作?

我實際上自己完成了這項工作,並且上面的網址是正確的。 我的問題是我試圖發布到一個組(使用組 ID)而不是一個實際的項目(又名存儲庫)。

所以這里是如何做到這一點:

  1. 將存儲庫添加到您的詩歌.toml

     [virtualenvs] in-project = true [repositories] [repositories.my-gitlab] url = "https://gitlab.com/api/v4/projects/<your project id>/packages/pypi"
  2. 在 gitlab 中生成一個可以讀寫包存儲庫的令牌。

  3. 發布包

    poetry publish --repository my-gitlab -u <token-username> -p <token-password>

如果您嘗試從 GitLab CI 部署,GitLab 會自動創建一個用戶和令牌組合,可用於在 CI 上下文中以用戶gitlab-ci-token$CI_JOB_TOKEN變量中的密碼進行身份驗證。

您需要做的就是特定於詩歌的設置值是設置詩歌的配置值以知道包注冊表存在,然后將其傳遞以進行身份​​驗證。 所有這些都可以在 CI 配置/腳本中完成。

  script:
    - poetry build
    - poetry config repositories.gitlab "https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/packages/pypi"
    - poetry config http-basic.gitlab gitlab-ci-token "$CI_JOB_TOKEN"
    - poetry publish --repository gitlab

如果您從 GitLab CI 外部進行部署,那么您將需要該訪問令牌並提供上面腳本中使用的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM