Manual Deployment Guide 手動部署指南 手动部署指南 Manual Deployment Guide

Our projects use Gitea Actions for CI/CD. Deployments are triggered manually — pushing or merging code does not automatically deploy to any environment. 我們的專案使用 Gitea Actions 進行 CI/CD。部署需要手動觸發 — 推送或合併程式碼不會自動部署到任何環境。 我们的项目使用 Gitea Actions 进行 CI/CD。部署需要手动触发 — 推送或合并代码不会自动部署到任何环境。 Ang mga project natin ay gumagamit ng Gitea Actions para sa CI/CD. Ang deployment ay manual na tini-trigger — ang pag-push o pag-merge ng code ay hindi awtomatikong nagde-deploy sa anumang environment.

Push / Merge推送 / 合併推送 / 合并Push / Merge ↑ master Code Ready程式碼就緒代码就绪Code Ready Manual Trigger手動觸發手动触发Manual Trigger ▶ Run Workflow Deploy部署部署Deploy 🎯 STG / PROD

Typical deployment flow: 一般部署流程: 一般部署流程: Karaniwang deployment flow:

  1. Merge your feature branch into master (or the project's main branch) via a Pull Request 透過 Pull Request 將你的功能分支合併到 master(或專案的主分支) 通过 Pull Request 将你的功能分支合并到 master(或项目的主分支) I-merge ang iyong feature branch sa master (o ang main branch ng project) gamit ang Pull Request
  2. Go to the repository's Actions tab on Gitea 前往 Gitea 上該 repository 的 Actions 分頁 前往 Gitea 上该 repository 的 Actions 标签页 Pumunta sa Actions tab ng repository sa Gitea
  3. Manually trigger the workflow and select the target environment (STG or PROD) 手動觸發 workflow 並選擇目標環境(STGPROD 手动触发 workflow 并选择目标环境(STGPROD I-trigger nang manual ang workflow at piliin ang target na environment (STG o PROD)
  4. Verify the deployment on STG before promoting to PROD 在升級到 PROD 之前先在 STG 上驗證部署 在升级到 PROD 之前先在 STG 上验证部署 I-verify ang deployment sa STG bago i-promote sa PROD
⚠️
Always deploy to STG first. Verify that everything works correctly on the staging environment before deploying to PROD. 一定要先部署到 STG。在部署到 PROD 之前,先確認 staging 環境上一切正常。 一定要先部署到 STG。在部署到 PROD 之前,先确认 staging 环境上一切正常。 Palaging mag-deploy muna sa STG. I-verify na maayos lahat sa staging environment bago mag-deploy sa PROD.
1

Open the Actions tab 打開 Actions 分頁 打开 Actions 标签页 Buksan ang Actions tab

Navigate to your repository on Gitea and click the Actions tab in the top navigation bar (between "Packages" and "Projects"). 在 Gitea 上打開你的 repository,點擊頂部導航欄中的 Actions 分頁(在「Packages」和「Projects」之間)。 在 Gitea 上打开你的 repository,点击顶部导航栏中的 Actions 标签页(在「Packages」和「Projects」之间)。 Pumunta sa iyong repository sa Gitea at i-click ang Actions tab sa itaas na navigation bar (sa pagitan ng "Packages" at "Projects").

Code Issues Pull Requests Packages Actions Projects
Click the "Actions" tab in the repository navigation 點擊 repository 導航欄中的「Actions」分頁 点击 repository 导航栏中的「Actions」标签页 I-click ang "Actions" tab sa repository navigation
URL pattern: https://git.datawords.hk/<org>/<repo>/actions URL 格式: https://git.datawords.hk/<org>/<repo>/actions URL 格式: https://git.datawords.hk/<org>/<repo>/actions URL pattern: https://git.datawords.hk/<org>/<repo>/actions
2

Select the workflow 選擇 workflow 选择 workflow Piliin ang workflow

On the Actions page, you'll see a list of workflows on the left sidebar. Click on the workflow you want to run (e.g. "Deploy"). 在 Actions 頁面,左側邊欄會顯示 workflow 列表。點擊你要執行的 workflow(例如 「Deploy」)。 在 Actions 页面,左侧边栏会显示 workflow 列表。点击你要执行的 workflow(例如 「Deploy」)。 Sa Actions page, makikita mo ang listahan ng mga workflow sa kaliwang sidebar. I-click ang workflow na gusto mong patakbuhin (hal. "Deploy").

Workflows All Workflows Deploy Workflow runs will appear hereWorkflow 執行記錄會顯示在這裡Workflow 执行记录会显示在这里Dito lalabas ang workflow runs Run Workflow
Select the workflow from the sidebar, then click "Run Workflow" 從側邊欄選擇 workflow,然後點擊「Run Workflow」 从侧边栏选择 workflow,然后点击「Run Workflow」 Piliin ang workflow mula sa sidebar, pagkatapos i-click ang "Run Workflow"
3

Configure and run 設定並執行 设置并执行 I-configure at patakbuhin

A dropdown panel will appear with the following options: 會出現一個下拉面板,包含以下選項: 会出现一个下拉面板,包含以下选项: Lalabas ang isang dropdown panel na may mga sumusunod na opsyon:

Branch master Deployment target STG Choose STG or PROD選擇 STG 或 PROD选择 STG 或 PRODPiliin STG o PROD Run Workflow
Select branch and deployment target, then click "Run Workflow" 選擇分支和部署目標,然後點擊「Run Workflow」 选择分支和部署目标,然后点击「Run Workflow」 Piliin ang branch at deployment target, pagkatapos i-click ang "Run Workflow"
⚠️
Double-check the environment before clicking Run. Deploying to PROD by mistake can cause downtime. 點擊 Run 之前請再次確認環境。誤部署到 PROD 可能會導致服務中斷。 点击 Run 之前请再次确认环境。误部署到 PROD 可能会导致服务中断。 I-double-check ang environment bago i-click ang Run. Ang maling pag-deploy sa PROD ay maaaring magdulot ng downtime.
1

Watch the workflow run 監看 workflow 執行 监看 workflow 执行 Panoorin ang workflow run

After triggering the workflow, a new run appears in the Actions list. Click on it to see the live progress of each job. 觸發 workflow 後,Actions 列表中會出現一個新的 run。點擊進入可以即時看到每個 job 的進度。 触发 workflow 后,Actions 列表中会出现一个新的 run。点击进入可以实时看到每个 job 的进度。 Pagkatapos i-trigger ang workflow, lalabas ang bagong run sa Actions list. I-click ito para makita ang live progress ng bawat job.

Deploy #8 Deploy STG · master · 30s ago Running Deploy #7 Deploy STG · master · 2 hours ago Success Deploy #6 Deploy PROD · master · 1 day ago Success
The workflow runs list shows status, environment, and timing Workflow 執行列表顯示狀態、環境和時間 Workflow 执行列表显示状态、环境和时间 Ipinapakita ng workflow runs list ang status, environment, at oras

Status icons: 狀態圖示: 状态图标: Status icons:

  • Queued — waiting to start 排隊中 — 等待開始 排队中 — 等待开始 Queued — naghihintay na magsimula
  • 🟠 Running — deployment in progress 🟠 執行中 — 正在部署 🟠 执行中 — 正在部署 🟠 Running — kasalukuyang nagde-deploy
  • 🟢 Success — deployment completed successfully 🟢 成功 — 部署已成功完成 🟢 成功 — 部署已成功完成 🟢 Success — matagumpay na natapos ang deployment
  • 🔴 Failed — something went wrong (check the logs) 🔴 失敗 — 出了問題(請檢查 log) 🔴 失败 — 出了问题(请检查 log) 🔴 Failed — may nangyaring mali (tingnan ang logs)
2

Read the logs 查看 log 查看 log Basahin ang logs

Click on any job name (e.g. "deploy-stg", "promote-prod") to expand it and see the detailed step-by-step logs. Each step shows its output and duration. 點擊任何 job 名稱(例如 「deploy-stg」「promote-prod」)可以展開查看詳細的逐步 log。每個步驟都會顯示其輸出和執行時間。 点击任何 job 名称(例如 「deploy-stg」「promote-prod」)可以展开查看详细的逐步 log。每个步骤都会显示其输出和执行时间。 I-click ang anumang job name (hal. "deploy-stg", "promote-prod") para i-expand ito at makita ang detalyadong step-by-step logs. Ipinapakita ng bawat step ang output at tagal nito.

Jobs prepare 3s deploy-stg 28s notify Set up job 0s Checkout 1s Vault login 2s Get secrets from Vault 1s Pack files 3s Transfer to STG 21s... scp addiction-files-20260319.tar.gz ... scp addiction-themes-20260319.tar.gz ...
Click a job to see its step-by-step logs in real time 點擊 job 可以即時查看逐步 log 点击 job 可以实时查看逐步 log I-click ang job para makita ang step-by-step logs nito sa real time
3

Verify the deployment 驗證部署 验证部署 I-verify ang deployment

Once all jobs show 🟢, open the target environment URL in your browser and verify that your changes are live. 當所有 job 都顯示 🟢 後,在瀏覽器中打開目標環境的 URL,確認你的更改已經生效。 当所有 job 都显示 🟢 后,在浏览器中打开目标环境的 URL,确认你的更改已经生效。 Kapag lahat ng job ay nagpapakita ng 🟢, buksan ang target environment URL sa iyong browser at i-verify na live na ang mga pagbabago mo.

Tip: Use incognito mode or hard-refresh (Ctrl+Shift+R) to bypass browser cache when verifying. 提示:驗證時使用無痕模式或強制重新整理(Ctrl+Shift+R)以繞過瀏覽器快取。 提示:验证时使用无痕模式或强制刷新(Ctrl+Shift+R)以绕过浏览器缓存。 Tip: Gumamit ng incognito mode o hard-refresh (Ctrl+Shift+R) para ma-bypass ang browser cache kapag nagve-verify.

Common issues and how to fix them: 常見問題及解決方法: 常见问题及解决方法: Mga karaniwang problema at paano ayusin:

?

"Run Workflow" button is missing 找不到「Run Workflow」按鈕 找不到「Run Workflow」按钮 Nawawala ang "Run Workflow" button

  • Make sure you have Write permission on the repository. Read-only users cannot trigger workflows. 確認你對該 repository 有 Write 權限。唯讀使用者無法觸發 workflow。 确认你对该 repository 有 Write 权限。只读用户无法触发 workflow。 Siguraduhing may Write permission ka sa repository. Ang read-only users ay hindi maaaring mag-trigger ng workflows.
  • The workflow must have a workflow_dispatch trigger defined. If it's missing, the button won't appear. Workflow 必須定義了 workflow_dispatch 觸發器。如果沒有定義,按鈕就不會出現。 Workflow 必须定义了 workflow_dispatch 触发器。如果没有定义,按钮就不会出现。 Ang workflow ay dapat may workflow_dispatch trigger na naka-define. Kung wala ito, hindi lalabas ang button.
?

Deployment failed 部署失敗 部署失败 Nabigo ang deployment

  1. Click the failed job to see the error in the logs 點擊失敗的 job 查看 log 中的錯誤訊息 点击失败的 job 查看 log 中的错误信息 I-click ang failed na job para makita ang error sa logs
  2. Look for the red ❌ step — that's where the error occurred 找到標記紅色 ❌ 的步驟 — 錯誤就發生在那裡 找到标记红色 ❌ 的步骤 — 错误就发生在那里 Hanapin ang step na may pulang ❌ — doon nangyari ang error
  3. Fix the issue and re-trigger the workflow (you can safely re-run it) 修復問題後重新觸發 workflow(可以安全地重新執行) 修复问题后重新触发 workflow(可以安全地重新执行) Ayusin ang problema at i-trigger muli ang workflow (ligtas na i-re-run ito)
Common causes: SSH connection timeout, database server unreachable, disk space full on target server, or incorrect Vault secrets. 常見原因:SSH 連線超時、資料庫伺服器無法連線、目標伺服器磁碟空間不足、或 Vault 密鑰配置錯誤。 常见原因:SSH 连接超时、数据库服务器无法连接、目标服务器磁盘空间不足、或 Vault 密钥配置错误。 Mga karaniwang sanhi: SSH connection timeout, hindi maabot ang database server, puno ang disk space sa target server, o maling Vault secrets.
?

Need to roll back 需要回滾 需要回滚 Kailangang i-roll back

If a deployment causes issues on STG or PROD: 如果部署在 STG 或 PROD 上造成問題: 如果部署在 STG 或 PROD 上造成问题: Kung ang deployment ay nagdulot ng problema sa STG o PROD:

  1. Revert the problematic commit on master (via a new commit or revert PR) master 上還原有問題的 commit(透過新的 commit 或 revert PR) master 上还原有问题的 commit(通过新的 commit 或 revert PR) I-revert ang may problemang commit sa master (gamit ang bagong commit o revert PR)
  2. Trigger the workflow again to deploy the reverted code 重新觸發 workflow 部署還原後的程式碼 重新触发 workflow 部署还原后的代码 I-trigger muli ang workflow para i-deploy ang reverted na code
⚠️
Contact the project lead if you're unsure how to proceed. Don't attempt to fix production issues alone. 如果不確定該怎麼做,請聯繫專案負責人。不要嘗試獨自修復 production 問題。 如果不确定该怎么做,请联系项目负责人。不要尝试独自修复 production 问题。 Makipag-ugnayan sa project lead kung hindi ka sigurado. Huwag subukang ayusin ang mga production issue nang mag-isa.