Gitlab CI 作业应该更改源代码。诗歌动态版本控制

Gitlab CI job should change source code. poetry-dynamic-versioning

我想要 运行 一个启动 poetry-dynamic-versioning 的作业并向 pyproject.toml__init__.py 添加新版本。

是否可以使用 CI 作业更改源代码?

是的。这个有可能。您需要完成以下步骤

  1. Generate a ssh key pair 用于您的 CI 进程。

    ssh-keygen -t ed25519 -C "Key for Gitlab CI" -f gitlab-ci_ed25519

    !不要向 SSH 密钥添加密码!

    这给你两个文件 gitlab-ci_ed25519.pubgitlab-ci_ed25519

  2. Create a deploy key 对您的存储库具有写入权限(也可能在组级别)。使用步骤 1 中的 public 键:gitlab-ci_ed25519.pub.

    部署密钥部分可以在 -/settings/repository

    下找到
  3. Protected Branches。对于您的用例,可能需要允许部署密钥推送到受保护的分支。

    受保护的分支可以在-/settings/repository

    下找到
  4. Create a variable SSH_PRIVATE_KEY 使用步骤 1 中的私钥:gitlab-ci_ed25519.

    变量部分可以在-/settings/ci_cd

    下找到

    注意:您可以通过将 SSH_PRIVATE_KEY 变量设置为“受保护”来增加一些安全性。如果选中,该变量仅在 运行 受保护的分支或标记上的管道中可用。有关安全性的更多信息,请参见 here.

  5. Follow this guide 并创建一个 .gitlab-ci.yml 使用部署密钥访问 repo。

  • 现在您的工具(poetry-dynamic-versioning、git)应该能够修改文件并将它们推送回您的源。
  • 可以在这里找到一个类似的例子(对于 docker 执行者):(我可以确认它有效)
  1. Job Control(可选)。由于来自 Gitlab-CI 的推送可以再次触发管道,您可能需要添加一些 rule 指令来控制何时开始作业并防止无限循环。