fis*_*eny 4 git symfony gitlab composer-php gitlab-ci
我正在尝试为我正在处理的项目(PHP - Symfony 4 / MySQL)设置 Gitlab CI。我已经.gitlab-ci.ym使用必要的步骤创建了l 文件来准备 Docker 映像。其中一个步骤是运行composer install——这通常应该安装一堆链接代码,其中一些来自私有存储库(也存储在 Gitlab 上)。
我正在尝试找出当前的最佳实践,以允许 Gitlab CI 运行程序从其私有存储库中克隆此代码。我在其他 Stack Overflow 帖子中看到对该${CI_JOB_TOKEN}变量的引用,但似乎缺少连接信息以使其工作 - 例如,我是否需要修改私有存储库以某种方式将该变量作为部署令牌访问,或者是否需要当 Gitlab 从它自己的服务器克隆代码时,这会自动发生吗?
有没有人有一个完整的.gitlab-ci.yml文件示例,可以使用 Composer 从私有仓库中克隆代码?如果相关,我需要克隆 4 个私有存储库,并且需要为许多依赖于这些基于库的项目设置相同的 CI。
多次阅读此页面后,我设法解决了这个问题 - https://docs.gitlab.com/ee/user/project/new_ci_build_permissions_model.html
它提到推送代码的用户是运行 CI 任务的用户。使用这些知识和CI_JOB_TOKEN自动可用的变量,我将以下内容添加到我的before_script:
git config --global url."https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.com/".insteadOf "git@gitlab.com:"
Run Code Online (Sandbox Code Playgroud)
...然后在我的 中composer.json,添加了我想使用的存储库列表(使用"repositories": []密钥,因为这允许我强制他们使用 https 来结帐,而不是我在本地使用的 ssh。
这种组合现在允许我运行 CI 任务并从私有存储库中提取代码而没有权限问题 - 不需要部署密钥或令牌。
| 归档时间: |
|
| 查看次数: |
2032 次 |
| 最近记录: |