自動化 CI/CD 流程
每次 push 自動跑測試、建置、部署,讓工作流程更安全可靠。
Course
把部署和檢查自動化,讓每次 push 都更安心。30 天鐵人賽系列,從 CI/CD 基礎到進階部署流程。
每次 push 自動跑測試、建置、部署,讓工作流程更安全可靠。
理解 workflow、job、step 的結構,能寫出可複用的 Action。
串接 Docker、SSH 部署、Secrets 管理與第三方服務通知。
Target audience: 零基礎 / 鐵人賽 / 30 天
> 腓立比書 4 章 13 節「我靠著那加給我力量的 (ymal),凡事都能做」
> 「有朋自遠方來,不亦樂乎」應該算是孔子的 Hello World 吧。
> GitHub Actions 如同九方皋相馬,見其所見,不見其所不見;視其所視,而遺其所不視。預設環境是讀不到 Code 的,要使用 actions/checkout 才能讀取 repo 內容。
> 宋·張端義《貴耳集》上卷:「言簡理盡,遂成王言。」可見檔案壓縮十分重要。
> 《史記·秦始皇本紀》:「書同文,車同軌。」秦始皇做專案一定會設定會用 Prettier,讓程式格式一致。
> 《三國演義》第六 ○ 回:「竊聞:『 良藥苦口利於病,忠言逆耳利於行。』」處理 Issue 和 PR 很煩但十分重要。
> 《禮記·中庸》「凡事預則立,不預則廢。」說明了如果沒有預先設定事件觸發器,需要時 Action 也不會執行。
> 「知者不惑,仁者不憂,勇者不懼。」因為他們都有使用 eslint。
> 《論語.公冶長》:「聽其言而觀其行。」說明了 unit test 的重要性。
> 從孟母三遷的故事可以看出孟子在不同環境的相容性都不錯,但結果不一定和預期相同。
> 水果冰淇淋喜歡你,GitHub Secrets 在這裡。 > > 《易經》:「亂之所生也,則言語以為階。君不密則失臣,臣不密則失身」說明了把 token 存在 Secrets 的重要性。
> 甚麼是條件運行?孟子說:「生,事之以禮;死,葬之以禮;祭,事之以禮。」
> 司馬遷敢說:「人固有一死,或重於泰山,或輕於鴻毛。」正是因為他已經把服務打包成 Docker 映像了,就算服務掛了也不怕。
> 老子能夠無為而治,正是因為他掌握了 GitHub Actions 自動化部屬。
> 《史記》「以貌取人,失之子羽」說明了 SSH 身分驗證的重要性。
> 秦始皇焚書坑儒時可以 force push 刪除紀錄,但誰知道有沒有人本地 `.git` 還留著呢!
> 孔子能從心所欲不逾矩。正是因為他已經掌握 GitHub Actions,能夠根據自己的需求自動化操作。
> 白居易在看到滿滿的 issue 後不經感嘆:「野火燒不盡,春風吹又生。」然後毅然決然地把 issue 同步到 Notion,這樣就不會忘記了。
> 戰國時期張儀遊說各國開放 API 給秦整合,才能夠瓦解合縱聯盟。
> 司馬遷如果使用 GitHub Actions 就可以自動更新《史記》了。
> 不如虎穴,焉得虎子,說明了 pyinstaller 要打包 macOS 的執行檔一定要在 macOS 環境運行。
> 「讀書人的事,能算偷麼?」孔乙己如果是使用 GitHub Actions 運行爬蟲腳本,就不會被人發現還打斷腳了。
> 子曰:「不在其位,不謀其政。」說明了多階段工作流程的重要性。
> 嬌娘對王安石進行心理上的壓力負載測試後寫下了性能報告:「宰相肚裡能撐船」
> 《山河頌》:「外賊易擋,家賊難防」套件的漏洞常常難以發現,還好有 Dependabot 可以定期檢查。
> 雅典軍隊如果有 Slack 通知,斐迪庇得斯就不用趕著從馬拉松跑回雅典了。
> 王貞白曾感嘆「一寸光陰一寸金」,可見最佳化工作流程運行時間的重要性。畢竟 GitHub Actions 在私人倉庫中可不是無限免費的!
> 《荀子 ─ 勸學》:「不積跬步,無以致千里;不積小流,無以成江海。」
倒數第二天了,各位今年有參加鐵人賽嗎?記得去年寫[【不用庫 也能酷 - 玩轉 CSS & Js 特效】](https://ithelp.ithome.com.tw/users/20139821/ironman/6133)的時候緊張到好幾天晚上做惡夢夢到忘記發文,不過今天我心裡特別平安,因為我寫了一個 GitHub Actions 來提醒我每小時發文。
> 愛爾蘭詩人葉慈:「學習不是注滿一桶水,而是點燃一把火。
Comments
留言區