diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index fa52623..9da96eb 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -41,19 +41,19 @@ jobs: is_beta: ${{ env.IS_BETA }} # 定義 build job 的步驟。 steps: - # 在 Gitea 上建立 release,並讓 tag 與版本對齊。 - - name: Publishing Release - # 使用外部 release action,版本由倉庫變數控制。 - uses: akkuman/gitea-release-action@${{ vars.ACTION_GITEA_RELEASE_VERSION }} - with: - # release 名稱包含倉庫名稱與版本號。 - name: "${{ gitea.event.repository.name }} v${{ env.VERSION }}" - # tag 名稱固定使用 v 前綴。 - tag_name: "v${{ env.VERSION }}" - # 對應到目前提交。 - target_commitish: ${{ gitea.sha }} - # beta 分支建立 prerelease,正式分支則不是。 - prerelease: ${{ env.IS_BETA }} + # 在 Gitea 上建立 release,並讓 tag 與版本對齊。 + - name: Publishing Release + # 使用外部 release action,版本由倉庫變數控制。 + uses: akkuman/gitea-release-action@${{ vars.ACTION_GITEA_RELEASE_VERSION }} + with: + # release 名稱包含倉庫名稱與版本號。 + name: "${{ gitea.event.repository.name }} v${{ env.VERSION }}" + # tag 名稱固定使用 v 前綴。 + tag_name: "v${{ env.VERSION }}" + # 對應到目前提交。 + target_commitish: ${{ gitea.sha }} + # beta 分支建立 prerelease,正式分支則不是。 + prerelease: ${{ env.IS_BETA }} # test job 以 build 輸出為基礎執行版本計算與 beta 專屬檢查。 test: @@ -75,36 +75,36 @@ jobs: version: ${{ steps.calculate-version.outputs.version }} # 定義 test job 的步驟。 steps: - # 執行 calculate-version action 取得版本號。 - - name: Run Calculate Version - # 用 commit 對應版本的動態 action 版本。 - id: calculate-version - uses: https://gitea.jsc.idv.tw/actions/calculate-version@v${{ env.VERSION }} - with: - # 將 beta 狀態轉成布林值傳入 action。 - is_beta: ${{ env.IS_BETA == "true" }} - # beta 流程才需要安裝 LLM CLI。 - - name: Setup LLM CLI - # 動態指定 setup action 版本。 - uses: https://gitea.jsc.idv.tw/actions/setup-${{ vars.ACTION_SETUP_LLM_CLI }} - # 只有 beta 分支才執行。 - if: ${{ env.IS_BETA == 'true' }} - with: - # 提供 OAuth 憑證給 CLI 安裝流程。 - oauth: ${{ secrets.LLM_OAUTH }} - # beta 流程才執行 AI Code Review。 - - name: Run AI Code Review - # 用倉庫變數指定 action 版本。 - uses: https://gitea.jsc.idv.tw/actions/ai-code-review@${{ vars.ACTION_AI_CODE_REVIEW_VERSION }} - # 步驟 id 供必要時引用輸出。 - id: ai-code-review - # 只有 beta 分支才執行。 - if: ${{ env.IS_BETA == 'true' }} - with: - # 提供 token 給 AI review 流程。 - token: ${{ secrets.TOKEN }} - # 指定模型名稱。 - model: ${{ vars.LLM_NAME }} + # 執行 calculate-version action 取得版本號。 + - name: Run Calculate Version + # 用 commit 對應版本的動態 action 版本。 + id: calculate-version + uses: https://gitea.jsc.idv.tw/actions/calculate-version@v${{ env.VERSION }} + with: + # 將 beta 狀態轉成布林值傳入 action。 + is_beta: ${{ env.IS_BETA == "true" }} + # beta 流程才需要安裝 LLM CLI。 + - name: Setup LLM CLI + # 動態指定 setup action 版本。 + uses: https://gitea.jsc.idv.tw/actions/setup-${{ vars.ACTION_SETUP_LLM_CLI }} + # 只有 beta 分支才執行。 + if: ${{ env.IS_BETA == 'true' }} + with: + # 提供 OAuth 憑證給 CLI 安裝流程。 + oauth: ${{ secrets.LLM_OAUTH }} + # beta 流程才執行 AI Code Review。 + - name: Run AI Code Review + # 用倉庫變數指定 action 版本。 + uses: https://gitea.jsc.idv.tw/actions/ai-code-review@${{ vars.ACTION_AI_CODE_REVIEW_VERSION }} + # 步驟 id 供必要時引用輸出。 + id: ai-code-review + # 只有 beta 分支才執行。 + if: ${{ env.IS_BETA == 'true' }} + with: + # 提供 token 給 AI review 流程。 + token: ${{ secrets.TOKEN }} + # 指定模型名稱。 + model: ${{ vars.LLM_NAME }} # result job 只在非 beta 流程時,根據 test 的結果再發佈一次 release。 result: @@ -124,16 +124,16 @@ jobs: IS_BETA: ${{ needs.build.outputs.is_beta }} # 定義 result job 的步驟。 steps: - # 再次發佈 release,作為正式結果。 - - name: Publishing Release - # 與 build job 使用相同的 release action 與版本來源。 - uses: akkuman/gitea-release-action@${{ vars.ACTION_GITEA_RELEASE_VERSION }} - with: - # release 名稱包含倉庫名稱與最終版本號。 - name: "${{ gitea.event.repository.name }} v${{ env.VERSION }}" - # 使用與 build 相同的 tag 命名方式。 - tag_name: "v${{ env.VERSION }}" - # 指向目前提交。 - target_commitish: ${{ gitea.sha }} - # 這裡再次判斷是否為 beta,正式版時會是 false。 - prerelease: ${{ env.IS_BETA == "true" }} + # 再次發佈 release,作為正式結果。 + - name: Publishing Release + # 與 build job 使用相同的 release action 與版本來源。 + uses: akkuman/gitea-release-action@${{ vars.ACTION_GITEA_RELEASE_VERSION }} + with: + # release 名稱包含倉庫名稱與最終版本號。 + name: "${{ gitea.event.repository.name }} v${{ env.VERSION }}" + # 使用與 build 相同的 tag 命名方式。 + tag_name: "v${{ env.VERSION }}" + # 指向目前提交。 + target_commitish: ${{ gitea.sha }} + # 這裡再次判斷是否為 beta,正式版時會是 false。 + prerelease: ${{ env.IS_BETA == "true" }} diff --git a/.gitea/workflows/master.yaml b/.gitea/workflows/master.yaml index 7a99856..b8e359d 100644 --- a/.gitea/workflows/master.yaml +++ b/.gitea/workflows/master.yaml @@ -29,20 +29,20 @@ jobs: COMMIT_SHA: ${{ gitea.event.commits[1].id }} # 定義 deploy job 的步驟。 steps: - # 先檢出完整原始碼與 tag 歷史,讓後續可以查詢 tag。 - - name: Source Code Checkout - # 使用 checkout action,版本由倉庫變數控制。 - uses: actions/checkout@${{ vars.ACTION_CHECKOUT_VERSION }} - with: - # 取得完整歷史,避免 tag 查詢因淺層 clone 而失敗。 - fetch-depth: 0 - # 根據 COMMIT_SHA 找出包含該提交的最新 tag。 - - name: Get Commit Tag - # 將查到的 tag 寫入 Gitea output。 - id: commit - run: >- - echo "tag=$(git for-each-ref --sort=-refname --format='%(refname:strip=2)' refs/tags --contains ${{ env.COMMIT_SHA }} | head -n 1)" >> $GITEA_OUTPUT - # 將查到的 tag 輸出到日誌,方便人工確認。 - - name: Show Tag - run: >- - echo "[DEPLOY][INF][$(TZ='Asia/Taipei' date +'%Y/%m/%d %H:%M:%S')]: ${{ steps.commit.outputs.tag }}" + # 先檢出完整原始碼與 tag 歷史,讓後續可以查詢 tag。 + - name: Source Code Checkout + # 使用 checkout action,版本由倉庫變數控制。 + uses: actions/checkout@${{ vars.ACTION_CHECKOUT_VERSION }} + with: + # 取得完整歷史,避免 tag 查詢因淺層 clone 而失敗。 + fetch-depth: 0 + # 根據 COMMIT_SHA 找出包含該提交的最新 tag。 + - name: Get Commit Tag + # 將查到的 tag 寫入 Gitea output。 + id: commit + run: >- + echo "tag=$(git for-each-ref --sort=-refname --format='%(refname:strip=2)' refs/tags --contains ${{ env.COMMIT_SHA }} | head -n 1)" >> $GITEA_OUTPUT + # 將查到的 tag 輸出到日誌,方便人工確認。 + - name: Show Tag + run: >- + echo "[DEPLOY][INF][$(TZ='Asia/Taipei' date +'%Y/%m/%d %H:%M:%S')]: ${{ steps.commit.outputs.tag }}"