[英]What does a good Phing workflow look like?
我正试图进入CI的心态,本周末一直在和Phing一起玩。 这一切看起来都很直接,并且已经有很多例子。
然而,令我困惑的是人们如何实际使用它。 也就是说,我不是在寻找你做的测试,而是使用Phing建议的工作流程,在什么阶段你激活它,在开发周期的哪个阶段采取行动。
例如,我们有几个网站,目前我们在本地编辑源代码并保存上传到实际网站(我知道这有多糟糕......),我们做了一些快速测试并确保代码按计划运行。 如果是这样,我们承诺回购并继续进行。 如果没有,我们可以回滚或编辑撤消和重新保存。 虽然这看起来很疯狂,但简单性对我们来说效果很好。
我们现在有一个小团队,所以我试图将Phing推入这个过程,以获得linting / sniffing / mess检测等所有额外的好处,但是我无法确定事件的最佳顺序。
你会建议:
以上似乎有点长啰嗦。 是不是因为看起来我试图将测试部署与实时部署合并,让我感到困惑?
此外,它似乎有点倒退,然后运行Phing,然后必须编辑并可能重新提交再次尝试之前。
因此,它会更有意义:
上面的问题是,假设我只是想纠正硬编码到HTML页面的单词的拼写,看起来有点过分了吗?
最后,人们如何设置他们的服务器,你有一个服务器用于实时站点,一个用于登台,还有一个用于托管Phing(以及任何CI软件)?
像Phing这样的工具就是自动化。 因此,要回答这个“什么阶段,你激活它,在它是什么付诸行动阶段,在开发周期”,我会说你应该只要你觉得你会使用它获得的利益带来进去。
例如,如果您有一个需要完成多个命令的进程,那么使用Phing(甚至只是一个shell脚本)来自动执行这些步骤会有好处,特别是如果有多个人需要这样做或者它是特别容易出错。
因此,你应该使用phing来让你的生活更轻松,而不是更难。 任何涉及多个shell命令的任务,或者总是涉及键入具有大量难以记忆的参数的相同命令,通常是您可以/应该使用phing来自动化的。
考虑到你提到的第一个步骤列表,它确实有点长。 相反,您应该提前使用phing来自动执行这些步骤:
所以基本上我会做你在第二个列表中建议的内容。
您可能应该为单独的步骤制作phing命令,并使用于运行的phing命令通常一次性运行命令(例如,测试然后部署)。
如果您认为有必要,这将允许您跳过阶段,例如在您给出的关于仅更改一些文本的示例中。
服务器的典型方法是在自己的服务器上安装实时站点,然后让登台/测试服务器尽可能地镜像它。 对于CI或其他实用程序,您通常可以在登台服务器上托管它们,证明它们不会干扰您正在开发的主应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.