Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20220904 - SITCON 2022 - 從 0 到 GitHub Actions,以...

20220904 - SITCON 2022 - 從 0 到 GitHub Actions,以 Hexo Blog 為例設計專屬的 CI/CD Pipeline

ChengHao Yang

September 04, 2022
Tweet

More Decks by ChengHao Yang

Other Decks in Technology

Transcript

  1. About me ⚫ 梯口 / 楊承昊 ⚫ Username:tico88612 ⚫ 去花蓮寫論文的碩二生

    ⚫ 修習高中教育師資學程 ⚫ 科技公司擔任 ITSRE 工讀生 ⚫ 歡迎拿鏡音鈴戳友(O)
  2. ⚫ 有後台管理系統 ⚫ 所見即所得(程式碼 Highlight 較難) ⚫ 有網路狀態下編輯、發佈 CMS 內容管理系統

    SSG 靜態生成網站 ⚫ 版型自訂較靈活 ⚫ Markdown(程式碼 Highlight 較簡單) ⚫ 只能在單台電腦上編輯、發佈
  3. 0. Architecture (cont.) 1. Hexo Source 不要追蹤自動生成的頁面。 2. Hexo Source

    如果有用到其他的 Git Repo,請善用 Submodule。 3. CI/CD 是分開的概念: 3.1. CI 持續整合,確定程式碼是可以產生頁面。 3.2. CD 持續部屬,將結果自動推送出去。 4. 保持分支的簡潔,這裡會把產生出來的網頁放到別的 Repo 上。
  4. 1. 準備 Deploy Key 要準備 deploy key 就要用 ssh-keygen 生成公鑰私鑰

    ssh-keygen -t ed25519 -C "<YOUR_EMAIL>" -f deploy <YOUR_EMAIL> 可以替換成你的 GitHub Email 或者照下面填寫 GitHub Actions Bot 的 Email。 ssh-keygen -t ed25519 -C "41898282+github-actions[bot]@users.noreply.github.com" -f deploy 之後就會生成 deploy.pub 跟 deploy 兩個檔案。
  5. 4. 設定 GitHub Actions CI 我們可以回想一下我們要怎麼設計 GitHub Actions 流水線。 

    git clone  yarn (a.k.a yarn install)  yarn run build  產生好的靜態網站 Upload Artifact
  6. 5. 設定 GitHub Actions CD 上個步驟藉由 CI 把 Build 好的結果上傳到

    Artifact 上,這裡只要下載回來即可。  Download Artifact  git push 到其他專案 (或者你要 Deploy 到 FTP 上也可以)
  7. 以上 Demo 範例程式已經放在 GitHub 上 Hexo Source Repo: https://github.com/tico88612/cicd-hexo-blog-template GitHub

    Pages Repo: https://github.com/tico88612/cicd-hexo-blog-pages Demo Site: https://cicd-blog.yangjerry.tw/
  8. Thank you ⚫ Website: https://yangjerry.tw ⚫ Blog: https://blog.yangjerry.tw ⚫ GitHub:

    tico88612 ⚫ Instagram: @__tico88612__ ⚫ Discord: @tico88612#0001