對於我的https://github.com/bkimminich/juice-shop項目,我使用Sourceforge提供的webhook(https://sourceforge.net/p/juice-shop/files/github_webhook
)在GitHub激發Release
事件時在那裏創建發佈。這個webhook獲取所有附在發佈版本上的文件(在GitHub上),並將它們上傳到Sourceforge。到現在爲止還挺好。GitHub不會重新觸發發佈變化
我現在的問題是,我在CI/CD過程期間將更多文件附加到版本,即在Tavis-CI和Appveyor上構建的預封裝分發檔案文件。這些不會讓它成爲Sourceforge,,因爲它們在webhook最初執行時還不存在。看起來,在一個變更(即附加更多文件)到GitHub發行版時,沒有自動重新觸發webhook。
此問題的解決方法是手動重新觸發的最後一個電話網絡掛接,然後將拿起所有文件,包括後來加入的,並將其上傳到Sourceforge上。
但是,這是一個手工工藝,所以那種打破了我的自動化鏈中的最後一步。有沒有一種方法可以正確自動化?
不幸的是GitHub的觸發SourceForge上也對網絡掛接版本標記爲預發行和Sourceforge上不從「真實」版本區分這些,並創建自己的最終釋放。 另一種方法可能是自動點擊GitHub上最後一個版本的「Redeliver」按鈕,因爲這是一個簡單的GET-URL例如https://github.com/bkimminich/juice-shop/settings/hooks/#redeliver- 。 唯一可變的部分是最後的調用散列。假設你需要發送auth頭文件,否則這將是一個很大的CSRF漏洞。 –
bkimminich
在草稿狀態下保持發佈的技巧。至少AppVeyor有一個標誌來保留草稿版本,對於Travis-CI這個沒有記錄。見https://github.com/travis-ci/travis-ci/issues/6132 – bkimminich