<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Github-Actions - 標籤 - Yoru Karu Studio</title><link>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/tags/github-actions/</link><description>Github-Actions - 標籤 | Yoru Karu Studio</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><managingEditor>lalalalaluk@gmail.com (luk)</managingEditor><webMaster>lalalalaluk@gmail.com (luk)</webMaster><lastBuildDate>Sat, 20 Jun 2026 15:00:00 +0800</lastBuildDate><atom:link href="https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/tags/github-actions/" rel="self" type="application/rss+xml"/><item><title>Docker 教學 第 6 堂：GitHub Actions 進階實作與課程總結</title><link>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session6-github-actions-advanced/</link><pubDate>Sat, 20 Jun 2026 15:00:00 +0800</pubDate><author>luk</author><guid>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session6-github-actions-advanced/</guid><description><![CDATA[6-1 GitHub Actions 進階語法（約 1 小時） 環境變數 在 workflow 裡可以用環境變數來避免重複寫相同的值：
name: CI with Environment Variables on: push: branches: [ main ] env: # 整個 workflow 共用的環境變數 IMAGE_NAME: my-flask-app PYTHON_VERSION: &#39;3.11&#39; jobs: build: runs-on: ubuntu-latest env: # 這個 job 專用的環境變數 FLASK_ENV: testing steps: - name: 顯示環境變數 run: | echo &#34;Image: ${{ env.IMAGE_NAME }}&#34; echo &#34;Python: ${{ env.PYTHON_VERSION }}&#34; echo &#34;Flask: $FLASK_ENV&#34; 環境變數的三個層級：
層級 範圍 寫在哪裡 Workflow 層 所有 job 都能用 最外層的 env: Job 層 只有這個 job 能用 job 底下的 env: Step 層 只有這個 step 能用 step 底下的 env: 條件判斷 可以根據條件決定要不要執行某個 step 或 job：]]></description></item><item><title>Docker 教學 第 5 堂：CI/CD 概念與 GitHub Actions 入門</title><link>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session5-cicd-github-actions/</link><pubDate>Sat, 20 Jun 2026 14:00:00 +0800</pubDate><author>luk</author><guid>https://yoru-karu-blog-lalaluk-52581ac5e0cef170a3c8922c19182ecb6f7bd604.gitlab.io/posts/tutorial/docker/docker-session5-cicd-github-actions/</guid><description>5-1 什麼是 CI/CD？（約 30 分鐘） 先講一個故事 想像你在一間餐廳工作：
傳統做法：廚師做完一道菜 → 自己端出去 → 自己收盤子 → 回來再做下一道。每件事都要手動做。 自動化做法：廚師做完菜放到出餐口 → 傳送帶自動送到客人桌上 → 髒盤子自動回收。廚師只需要專心做菜。 CI/CD 就是軟體開發的「傳送帶」——你只需要專心寫程式碼，剩下的測試、打包、部署全部自動完成。
CI/CD 的定義 CI（Continuous Integration，持續整合）：
開發者把程式碼推到 Git 之後，自動執行測試 確保每次改動都不會弄壞現有的功能 「我 push 了程式碼 → 系統自動幫我跑測試 → 告訴我有沒有通過」 CD（Continuous Deployment / Delivery，持續部署/交付）：
測試通過之後，自動把程式打包、部署到伺服器 不需要手動 SSH 進伺服器去更新程式 「測試通過 → 自動 build Docker Image → 自動部署到伺服器」 完整流程：
開發者 push 程式碼 ↓ CI：自動跑測試 ↓ （測試通過） CD：自動 build Docker Image ↓ CD：自動 push 到 Docker Hub ↓ CD：自動部署到伺服器 ↓ 使用者看到最新版本沒有 CI/CD 的痛苦 手動流程 CI/CD 自動化 自己跑測試，常常忘記跑 每次 push 自動跑，不會漏 自己打 docker build、docker push 自動 build 和 push SSH 進伺服器手動更新 自動部署 「我本地測過了，怎麼上線就壞了？」 每次都在統一環境測試 部署一次要 30 分鐘 部署一次只要等幾分鐘 常見的 CI/CD 工具 工具 說明 GitHub Actions GitHub 內建，目前最主流，本課程使用 GitLab CI/CD GitLab 內建，GitLab 用戶首選 Jenkins 老牌工具，需要自己架伺服器，新專案較少使用 CircleCI 第三方服務 本課程使用 GitHub Actions，因為大部分人都有 GitHub 帳號、免費額度最多（每月 2000 分鐘）、學習資源最豐富。</description></item></channel></rss>