# 用途：master workflow 的 command-file 草稿，保留原始流程並補上逐行說明。
# 更新時間：2026/07/11 19:00:45
# workflow 名稱，對應 Gitea UI 中的顯示標題。
name: CD
# 定義此 workflow 的觸發事件。
on:
  # 在 push 事件時執行。
  push:
    # 限定觸發分支。
    branches:
      # 只有推送到 master 分支才執行。
      - master
# workflow 內的工作列表。
jobs:
  # 單一 job：輸出 context、檢查 commit tag。
  deploy:
    # job 顯示名稱。
    name: DEPLOY
    # 使用 Ubuntu runner。
    runs-on: ubuntu
    # job 層級環境變數。
    env:
      # 將完整 Gitea context 轉成 JSON 字串。
      GITEA_CONTEXT: ${{ toJSON(gitea) }}
      # 取第二筆 commit 的 id 作為查詢目標。
      COMMIT_SHA: ${{ gitea.event.commits[1].id }}
    # deploy job 的步驟。
    steps:
      # 顯示 Gitea context。
      - name: Show Gitea Context
        # 將 context 格式化輸出。
        run: echo "$GITEA_CONTEXT" | jq .
      # 取回完整原始碼與 tags。
      - name: Source Code Checkout
        # 使用 checkout action。
        uses: actions/checkout@${{ vars.ACTION_CHECKOUT_VERSION }}
        # checkout 參數。
        with:
          # 取得完整歷史。
          fetch-depth: 0
          # 一併抓取 tags。
          fetch-tags: true
      # 查詢指定 commit 對應的 tag。
      - name: Get Commit Tag
        # 供後續步驟讀取輸出。
        id: commit
        # 把查到的 tag 寫入 action 輸出。
        run: echo "tag=$(git describe --contains ${{ env.COMMIT_SHA }})" >> $GITEA_OUTPUT
      # 顯示剛查到的 tag。
      - name: Show Tag
        # 將 tag 印到 log。
        run: echo "${{ steps.commit.outputs.tag }}"
