css - 与 Git 的选择性持续集成

标签 css git deployment continuous-integration

我的 Django 元素团队希望将设计师的 CSS 放在一个中心位置,最好是在生产服务器上(这样当前的设计就有一个“真相”,他声称他过去曾使用过这个模型)。假设这甚至是一个好的做法,这将意味着设置 Git 以将 CSS 以持续集成 (CI) 的方式部署到生产中。

但是,我想以某种方式为设计者限制 Git,这样他就不会不小心更新 CSS 或 HTML 以外的任何文件。 Python 和 Django 文件将由开发人员更新,他们将以更传统的方式进行部署:在他们自己的分支机构中工作,并且只有一个人工构建经理 在测试和准备就绪时将所有内容 merge 到 master 中。

我们希望设计师能够将 CSS 部署到服务器的部分原因是为了避免在他的笔记本电脑上本地设置 Django 站点(除了 CSS、HTML 和 Git 之外,他的技术不是很好)。

  1. 这个设置是个好主意吗?如果不是,什么是合适的选择?
  2. 假设我们在 master 分支之外设置一个 CI 配置,并允许将 CSS 推送到 master,我是否可以限制设计人员修改和 checkin 非 CSS/HTML 文件的能力?如果是,怎么做?

最佳答案

Is this setup even a good idea? If not, what's the proper alternative?

我有一些保留意见。听起来您的设计师将是唯一一个在没有任何阈值的情况下将更改推向生产的人:没有代码审查,没有测试等。持续集成很棒,但是一个理智的过程包括防止错误部署的安全措施。由于团队的其他成员遵循不同的流程,您最终将管理两个不同的管道。这是一种浪费,其中一个(可能是设计师的)不可避免地会因为缺乏关注而分崩离析。

另一种方法是让每个人都在同一个进程中。教设计人员如何在本地运行应用程序,或构建使其更容易的工具。除非您的网站是完全静态的,否则他们怎么能看到他们的变化是什么样子的呢?也许培训他们需要更多的工作,但这是个人成长的绝佳机会。

Assuming that we set up a CI config off of the master branch, and allow the CSS to be pushed to master, can I even restrict the designer's ability to modify and check in non-CSS/HTML files? If so, how?

如果你走这条路,你可以使用Git hooks限制允许设计者提交的内容。您可以在他们的客户端上放置一个 pre-commit Hook ,或者,如果您控制服务器,则可以放置一个仅为设计者的用户运行的 pre-receive Hook 。任何一个都可以查看提交的文件并阻止提交/推送(如果有任何文件不是 CSS 或 HTML)。有一个名为 Overcommitpre-commit 框架这可能对你有帮助。如果您使用的是代码审查工具,大多数工具都有您可以 Hook 机器人的地方,以便在他们修改了不应该修改的文件时发表评论或阻止 merge 。

这里的另一种选择是信任您的同事。据推测,他们之所以被雇用是因为他们有效且有用,所以如果每个人都清楚他们应该做什么并且通常不会搞砸,那么您可以节省很多建立限制的工作。

关于css - 与 Git 的选择性持续集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35088347/

相关文章:

javascript - 删除点击事件应用的 CSS

git - 在Visual Studio或SourceTree上,撤消更改均不起作用

git - 通过deploy.cmd 文件部署azure Web 应用程序时,Grunt 安装失败

deployment - 从 Glassfish 取消部署所有应用程序

html - 在悬停时,如何同时更改单个 div 中的图像和文本的颜色?

javascript - 如何设置kendogrid组列的宽度

git - 在单独的终端屏幕上显示 git diff 和 git log 输出

ruby - RVM 安装 1.9.2 头错误

android - Xamarin android 应用程序部署失败,错误 "apksigner.BAT"退出,代码 2

css - GWT UiBinder 样式主名称不起作用