Greeting :
我在使用 github action 的時候碰到這樣的問題
我有兩個專案,分別是前端,後端,
由於現在 CI/CD 都在 repo-前端 repo-後端 當中,造成軟體跟 CI/CD 代碼是在一起的。
舉例
index.html <-- 這是軟體端寫的
/.github/workflows/main.yml <- 這是我維護的
我想要把專案分離,軟體歸軟體,CI/CD 歸 CI/CD,也就是把 CI/CD 獨立出來,
變成以下結構
但是我不知道要怎麼讓 repo-後端 吃到 repo-devops 裡面的 .github/workflows/main.yml
我希望最終的結果是
後端更新 code 的時候,會跑 devops 裡面的 .github/workflows/main.yml 的 CI/CD
但是跑的過程是要呈現在 後端 repo 的 action 裡面,讓後端看的。
總覺的是用 submodule 處理,但是不知道是誰引入誰,沒有頭緒。
嗨~
剛剛簡單查了一下,大概 Triggering by other repository #26323 中有解答。
其中這則留言中提供這個範例:producer workflow & consumer workflow 可以直接參考。
另外我強力推薦提問時,若幸運自己解答成功,可以更新自己的解答方式,會是一個比較好的選擇喔
:)
前幾天我覺得我想出來了,
可是我這幾天實作有點小卡關
還在試驗當中,
所以還沒辦法貼,
我看當時也沒人回,
我本來想說就把這篇關了。
只是不知道怎麼關閉。
我看了一下那三篇,我有曾經嘗試過
on: repository_dispatch
與
script actions/github-script@v6
只是說跟我想的還是有一點落差的,
會達不到我預期的效果,
因為 Build/test/deploy 細節不會被展示在BE repo 上面。
以這三篇大致上說的都是用 repository_dispatch 用 github_token 去觸發,
Library 更新 -> 觸發 APP repo workflow
翻譯成我現況可能有兩種狀況,先不管誰引入誰。
BE/FE 更新 -> 觸發 Devops workflows
這個呼叫是錯誤的, Devops workflows 訊息只會展示在 Devops repo
Devops 更新 -> 觸發 BE/FE repo workflow
但 BE/FE 還是吃不到 Devops .github/workflows/main.yml
其實 BE 的 workflows 流程裡,要吃到 Devops 裡面的 CI/CD。
翻了翻文件,可能會從下面文件的第三點再切入,而不是在 on 的時候思考。
https://docs.github.com/en/actions/using-workflows/reusing-workflows
還在努力做實驗中。
只是我覺得,就算做出來成功可能還是會有其他問題,
我也不知道可能有啥問題...但總覺得有坑就是了