我們與一些開發人員合作開發了一個巨大的TYPO3項目。我們試圖建立一個CI基礎設施,GIT,作曲家和詹金斯。 我們有發展(流浪),舞臺和生產環境。臨時服務器 上同時有多個功能是很常見的。由於不同的人員負責測試這些功能,因此這些功能通常不會同時應用於生產服務器。 因此,我們建立了以下工作流程:CI工作流程和單一功能部署的大型TYPO3項目
所有開發人員都從主分支開始創建自己的功能分支。當功能轉到登臺服務器時,應該推送功能分支。 我們有一個配置,其中所有功能分支都已定義,應該轉到分段。 Jenkins先生在構建項目之前將所有功能部門合併,並將所有內容部署到分段服務器。當一個功能成功通過測試並投入生產時,功能分支必須合併到主設備。 Jenkins先生建立了這個項目,一切都將部署到生產中。
到目前爲止,除了一點之外,我們對工作流程非常滿意:composer.lock文件。
功能可以更新或安裝軟件包。只要兩個特徵分支操作composer.lock文件,就會與文件的「散列」發生衝突,而該散列不能自動合併。
在我看來,沒有乾淨的解決方案。對我來說,唯一的解決方案是從存儲庫中排除composer.lock文件,並讓Jenkins先生做一個「作曲家更新」,這會導致所有必需包的未定義狀態。 在我看來,最簡潔的方法是在所有功能都經過測試後將整個開發環境合併到生產環境中,但由於組織原因無法實現。
此工作流程是一個巨大的邊緣案例,還是有最佳實踐解決方案?
感謝您的幫助!