3

我正在開發一個有多人的項目,這是一個網站應用程序,需要將webpack構建,uglified,連接成幾個文件,例如app.min.js,style.min.css等。 - 爲此,爲了防止合併衝突,我們最近將build文件夾添加到.gitignore,假設我們可以在部署期間構建。部署來自持續集成的構建文件

當推送到Master分支時,我們通過Semaphore CI(類似於Travis)自動「部署」,它運行作曲家安裝,npm安裝,最後觸發webpack構建的「npm run build」。這一切都是在CI方面構建並測試的,然後Semaphore會自動部署到託管我們應用程序的Amazon Elastic Beanstalk。

這個問題是,似乎信號量不會上傳它剛剛測試的構建,而是沒有內置JS或CSS的Master分支本身。我想知道是否有辦法將這些構建的文件推送到部署,或者如果在Elastic Beanstalk上再次運行整個構建過程是唯一的路線。似乎沒有必要在本地執行該過程3次,然後部署。每次在EB上需要這樣的步驟時,實際的重新實例化時間會變得更長,我希望儘可能縮短重新實例化的時間。

顯然,如果在EB上第三次構建它是唯一的方法,那麼我將不得不,只是想知道這個整個工作流是否有更好的解決方案。

+0

你是否能夠得到這個工作?我嘗試了下面提到的解決方案@Dean,但它不適用於我嘗試過的CI系統(儘管它在本地工作) – theoutlander

回答

0

我剛剛與https://deploybot.com/有很好的第一次經歷。可以直接部署到彈性beanstalk。這可能很有趣,或者你。

+0

我是不是真的想在這個工作流中添加另一個構建步驟,否則我只是在EB上運行構建。 –

2

我沒有使用信號量CI,但您可能可以使用.ebignore file

如果您創建一個,cli將使用該文件而不是.gitignore文件。

我發現在一些部署情況下,你想要.gitignore(全部編譯,無src)的反例。它基本上允許您從項目目錄中選擇要部署的文件,方式與.gitignore文件相同。

編輯:我剛剛注意到關於aws的文檔是缺乏的。它只提到文件排除,但你也可以包含文件。

編輯2:我不認爲信號量支持使用.ebignore,所以現在這個解決方案沒有任何用處。 :(

+0

這適用於本地,但不適用於我試過的CI系統。任何想法爲什麼會這樣? – theoutlander

+1

剛剛更新了我的回答,我不認爲它支持他們的結局。我知道這個問題已經提出了特拉維斯CI,但沒有得到太多的牽引力,所以我們所能做的只是等待和希望。 /github.com/travis-ci/dpl/issues/411 – Dean

相關問題