为了部署我们的Web应用程序,我们使用Bitbucket Pipelines作为我们的CI / CD平台。在这里,我们使用自组装的Docker容器来运行我们的构建和测试,然后再交付应用程序。构建意味着我们正在使用composer和npm来构建项目以便进一步运输,由于使用Docker很好,我们可以使用任何其他必需品。对于部署/运输,我们在管道的最后一步使用部署过滤器文件对Rsync进行同步。
- rsync -chrtuv --filter="merge ./.deployfilter" ./ $PROD_USER@$PROD_HOST:$PROD_PATH
过滤器示例:
- /logs/***
- ***.gitkeep
- .git/***
P /config/***
+ /vendor/***
+ /public_html/***
+ /***
在此部署策略旁边,我们将Gitflow用于git flow策略。这样,我们部署了master
分支,该分支与修补程序或发行版合并并标记到生产中。我们的release
分支已部署到我们的质量检查环境,而feature
分支已部署到我们的本地测试环境。
我们在使用此策略时遇到了一些问题(尤其是在较旧的项目中):
我们最终希望通过部署策略实现以下目标:
除了我们已经做过的一些最佳实践之外,还有其他一些最佳实践可以使它成为更好的策略,还是归结为消除人为错误,例如更好地设置部署过滤器或git实践?此外,我很好奇其他Webdev如何处理其部署策略。
此外,我还研究了其他一些问题,但没有什么能真正解决我的所有问题。如果您认为有一个,我很乐意看看。
谢谢。