Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20220904 - SITCON 2022 - 從 0 到 GitHub Actions,以...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ChengHao Yang
September 04, 2022
Technology
83
0
Share
20220904 - SITCON 2022 - 從 0 到 GitHub Actions,以 Hexo Blog 為例設計專屬的 CI/CD Pipeline
ChengHao Yang
September 04, 2022
More Decks by ChengHao Yang
See All by ChengHao Yang
20260410 - CNTUG meetup #72 - DiskImage Builder 介紹:以 Kubespray CI 打造 RockyLinux 10 Cloud Image 為例
tico88612
0
160
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
280
20260113 - NKP Tour Taipei 2026 - 雲端原⽣標準的商業價值:從開源中立到企業 AI 轉型之路
tico88612
0
46
20251023 - KubeSummit 2025 - Kubespray and IaC Practice Automating On-Premise Kubernetes Deployment
tico88612
0
210
20251020 - Cathay Open Source Meetup #2 - Cloud Native Ecosystem in Taiwan
tico88612
0
46
20250810 - CNTUG Meetup #69 / COSCUP 2025 - Non-Code Contributions for Beginners: Introduction to the Kubernetes Release Team
tico88612
0
120
20250429 - CNTUG Meetup #67 / DevOps Taiwan Meetup #69 - Deep Dive into Tetragon: Building Runtime Security and Observability with eBPF
tico88612
0
430
20241128 - CNTUG Meetup - Recap: KubeCon + CloudNativeCon North America 2024
tico88612
0
90
20241024 - CNTUG meetup - Kubernetes v1.31 簡單雜談
tico88612
0
150
Other Decks in Technology
See All in Technology
いつの間にかデータエンジニア以外の業務も増えていたけど、意外と経験が役に立ってる
zozotech
PRO
0
690
R&D 祭 2024 アニメエフェクト作成の効率化
olmdrd
PRO
0
100
パーソルキャリア IT/テクノロジー職向け 会社紹介資料|Company Introduction Deck
techtekt
PRO
0
230
Purview Endpoint DLP 動かしてみた
kozakigh
1
450
AWS WAFの運用を地道に改善し、自社で運用可能にするプラクティス
andpad
1
580
生成AI時代に信頼性をどう保ち続けるか - Policy as Code の実践
akitok_
1
510
クラウドネイティブ DB はいかにして制約を 克服したか? 〜進化歴史から紐解く、スケーラブルアーキテクチャ設計指針〜
hacomono
PRO
6
1.2k
2026-05-14 要件定義からソース管理まで!IBM Bob基礎ハンズオン
yutanonaka
0
170
JTCでRedmine利用者2700人を実現した手法 第二部
nobuonakamura
0
140
Cortex(Code) を ML モデルの 精度改善サイクルに組み込む.pdf
oimo23
0
230
全社統制を維持しながら現場負担をどう減らすか〜プラットフォームチームとセキュリティチームで進めたSecurity Hub活用によるAWS統制の見直し〜/secjaws-security-hub-custom-insights
mhrtech
1
620
そのSLO 99.9%、本当に必要ですか? 〜優先度付きSLOによる責任共有の設計思想〜 / Is that 99.9% SLO really necessary? Design philosophy of shared responsibility through prioritized SLOs
vtryo
0
840
Featured
See All Featured
Optimizing for Happiness
mojombo
378
71k
Paper Plane
katiecoart
PRO
1
50k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Thoughts on Productivity
jonyablonski
76
5.2k
Scaling GitHub
holman
464
140k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
360
The untapped power of vector embeddings
frankvandijk
2
1.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
Speed Design
sergeychernyshev
33
1.7k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
370
4 Signs Your Business is Dying
shpigford
187
22k
Transcript
主講者 tico88612 從 0 到 GitHub Actions,以 Hexo Blog 為例設計專屬的
CI/CD Pipeline
About me ⚫ 梯口 / 楊承昊 ⚫ Username:tico88612 ⚫ 去花蓮寫論文的碩二生
⚫ 修習高中教育師資學程 ⚫ 科技公司擔任 ITSRE 工讀生 ⚫ 歡迎拿鏡音鈴戳友(O)
P a r t 1 前言&故事
None
None
None
⚫ 有後台管理系統 ⚫ 所見即所得(程式碼 Highlight 較難) ⚫ 有網路狀態下編輯、發佈 CMS 內容管理系統
SSG 靜態生成網站 ⚫ 版型自訂較靈活 ⚫ Markdown(程式碼 Highlight 較簡單) ⚫ 只能在單台電腦上編輯、發佈
P a r t 2 自動化前的準備
貓咪 對這是貓咪,貓的演化可以追溯至新生代第三紀古 新世演化出的肉齒類,肉齒類動物為所有現代食肉 目動物的共同演化祖先。
執行 yarn run build 就會產生靜態網頁
Deploy 『如果你的建置、部署、測試、發佈流程無法 自動化,那它就是不可重複的。』 Image Source: Anne Zhou
P a r t 3 設計 CI/CD
0. Architecture
0. Architecture (cont.) 1. Hexo Source 不要追蹤自動生成的頁面。 2. Hexo Source
如果有用到其他的 Git Repo,請善用 Submodule。 3. CI/CD 是分開的概念: 3.1. CI 持續整合,確定程式碼是可以產生頁面。 3.2. CD 持續部屬,將結果自動推送出去。 4. 保持分支的簡潔,這裡會把產生出來的網頁放到別的 Repo 上。
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 兩個檔案。
Deploy Key deploy.pub 公鑰 deploy 私鑰
2. Hexo Source 專案中放上私鑰 Secret 名稱要記得 Actions 會使用到
3. GitHub Pages 專案中放上公鑰 記得要打勾 write access 這樣 Actions 才能自動推送
4. 設定 GitHub Actions CI 我們可以回想一下我們要怎麼設計 GitHub Actions 流水線。
git clone yarn (a.k.a yarn install) yarn run build 產生好的靜態網站 Upload Artifact
GitHub Actions CI 推送時觸發此 Workflow 時區變更為 UTC+8 專案 Checkout 下來
GitHub Actions CI (cont.) 安裝 Node v16 安裝相依性套件、產生網頁 上傳產生後的網頁放到 GitHub
Artifact 上
5. 設定 GitHub Actions CD 上個步驟藉由 CI 把 Build 好的結果上傳到
Artifact 上,這裡只要下載回來即可。 Download Artifact git push 到其他專案 (或者你要 Deploy 到 FTP 上也可以)
GitHub Actions CD 下載剛剛上傳的 Artifact 需要完成上個 Job 才能做 Deploy Push
到其他的 Repo
GitHub Actions CD (cont.) 紀錄的 Secret name 目的 Repo 資
訊 目的 Repo 分 支
6. GitHub Pages 專案中設定 Branch 選擇 branch 就按下 Save 即可
None
以上 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/
P a r t 4 Slido QA
Thank you ⚫ Website: https://yangjerry.tw ⚫ Blog: https://blog.yangjerry.tw ⚫ GitHub:
tico88612 ⚫ Instagram: @__tico88612__ ⚫ Discord: @tico88612#0001