如何用内置项目更新存储库?

时间:2018-05-07 11:02:36

标签: gitlab gitlab-ci

我正在尝试为使用Grunt(https://github.com/yeoman/generator-angular)的旧客户端项目设置GitLab CI / CD。

到目前为止,部署的工作方式如下:

  • 在本地运行'$ grunt build'构建项目并在项目根目录的'dist'文件夹中创建文件
  • 提交更改
  • 更改拉到生产服务器

创建.gitlab-ci.yml并进行提交后,GitLab CI / CD作业将通过,但存储库中'dist'文件夹中的文件不会更新。如果我定义了一个工件,我将在下载中获取更改的文件。但是我希望更新'dist'文件夹中的文件,以便我们继续使用适合我们的相同工作流程。这可以实现吗?

1 个答案:

答案 0 :(得分:0)

我不认为在管道中加入你的回购是个好主意。版本控制不会那么清楚,有些人在推送回购时会有自动管道触发,这会触发管道循环。

相反,您可能会重新组织您的环境以使用Docker,在专业和开发环境中使用Docker的原因有很多。仅举几例:这使您能够将刚建好的项目保存到注册表中,并在需要时使用您需要的版本并在内部使用所需的/dist重用它。这样您就可以轻松地在多个地方运行它,扩展它,管理它等。

如果您更改为Docker,那么为了让dist持久化,您实际上不需要做任何事情,只需在构建完成后将图像推送到注册表。

但要真正回答您的问题:

有一个功能请求会在很长一段时间内因您提出的问题而挂起:here。目前没有安全和专业的方式来做GitLab成员国。虽然您可以像GitLab成员之一建议的那样推迟更改(KamilTrzciński):

git push http://gitlab.com/group/project.git HEAD:my-branch

只需将其放在script文件中的gitlab-ci部分即可。 这里有更多的hack'y方法,但一定要承认它们带来的风险(管道更容易出错,如果以错误的方式配置,它们可能会发布一些机密信息并触发无限管道循环来命名一些)。

我希望你发现这很有用。