热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

适用于同一存储库中特定目录的Gitlabci

我们正在合并到公司的Git中。我们有这种特定的情况,其中我们的主分支是我们

我们正在合并到公司的Git中。我们有这种特定的情况,其中我们的主分支是我们的开发分支,每个发行版都是该主分支的分支版本。这些发行版本分为定制的客户版本。因此,我们正在使用单一存储库。

每个分支机构都有几个项目。每个项目都需要自己的ci。我们遇到的第一个问题是gitlab-runner自动克隆整个分支。实际上,这意味着将不必要文件的负载复制到甚至不使用这些文件的项目中。通过在GIT_STRATEGY: none中使用.gitlab-ci.yml,禁用自动克隆并强制我们手动提取.gitlab-ci.yml脚本部分中需要的文件,可以部分解决此问题。

这是使用git的稀疏签出完成的。在本地,一切正常,但是当我们使用gitlab-ci尝试时,由于某种原因,在.gitlab-ci.yml脚本部分中定义的pull请求被卡住了。我们转到服务器,尝试运行相同的“ git pull origin master”命令,该命令使gitlab-runner卡住并发现了问题。拉取请求需要身份验证。


  • 问题1:如何仅使用.gitlab-ci.yml或gitlab-runner的配置来处理请求请求所需的身份验证?我们知道克隆操作有这种身份验证方法,但是就我们所知,克隆并不是真正的选择(因为它总是从分支复制所有内容):
    http://gitlab-ci-token:${CI_JOB_TOKEN}@repository.git


  • 问题2:我们注意到在为新项目运行作业脚本时必须将git初始化为“ init:ed”。很好,很花哨,因为在已经存在的本地存储库上运行git init只会使其重新启动(这不是问题)。但是我们还必须添加我们的遥控器(git remote add origin %repositoryURL%)。这会导致问题,因为运行在git remote add origin中编写的同一.gitlab-ci.yml命令会在ci运行期间导致致命错误,从而导致构建失败。仅在以前已经添加了远程服务器的情况下才会发生这种情况,因此手动删除配置文件可能是一种解决方案?删除不存在的遥控器也会导致致命错误,因此删除->在每次作业运行时添加遥控器都不足够。


感谢您的耐心配合。我们知道这不是最佳解决方案,多重存储会容易得多,但我们确实想保留当前的工作树结构。





推荐阅读
author-avatar
亲家你要干啥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有