From 70af90cce6b0a39e55cda9a61aa2515d21ab55a8 Mon Sep 17 00:00:00 2001 From: Jeffery Date: Wed, 25 Mar 2026 21:35:31 +0800 Subject: [PATCH] first commit --- .gitea/workflows/master.yaml | 27 +++++++++++++++++++++++++++ Dockerfile | 10 ++++++++++ action.yaml | 16 ++++++++++++++++ entrypoint.sh | 27 +++++++++++++++++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 .gitea/workflows/master.yaml create mode 100644 Dockerfile create mode 100644 action.yaml create mode 100644 entrypoint.sh diff --git a/.gitea/workflows/master.yaml b/.gitea/workflows/master.yaml new file mode 100644 index 0000000..b54c903 --- /dev/null +++ b/.gitea/workflows/master.yaml @@ -0,0 +1,27 @@ +on: + push: + branches: + - master +jobs: + version: + name: "CD > 計算版本號" + runs-on: ubuntu + outputs: + version: ${{ steps.version.outputs.version }} + steps: + - name: 計算版本號 + id: version + uses: https://gitea.jsc.idv.tw/actions/calculate-version@${{ vars.ACTION_CALCULATE_VERSION }} + release: + name: "CD > 發布專案" + runs-on: ubuntu + needs: version + steps: + - name: 發布專案 + uses: akkuman/gitea-release-action@${{ vars.ACTION_RELEASE_VERSION }} + with: + tag_name: "v${{ needs.version.outputs.version }}" + - name: 清理成品 + uses: https://gitea.jsc.idv.tw/actions/cleanup-release@${{ vars.ACTION_CLEANUP_RELEASE_VERSION }} + with: + RUNNER_TOKEN: ${{ secrets.RUNNER_TOKEN }} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5625030 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,10 @@ +FROM alpine:latest + +# 安裝必要的工具 +RUN apk add --no-cache --no-check-certificate bash curl + +COPY entrypoint.sh /entrypoint.sh + +RUN chmod +x /entrypoint.sh + +ENTRYPOINT ["/entrypoint.sh"] \ No newline at end of file diff --git a/action.yaml b/action.yaml new file mode 100644 index 0000000..2e474a0 --- /dev/null +++ b/action.yaml @@ -0,0 +1,16 @@ +name: 'HEALTH CHECK' +description: '檢查服務健康狀態' +author: 'Jeffery' +inputs: + CHECK_URL: + description: '檢查URL' + required: true + HEALTH_CODE: + description: '健康碼' + default: '200' +runs: + using: 'docker' + image: 'Dockerfile' + env: + CHECK_URL: ${{ inputs.CHECK_URL }} + HEALTH_CODE: ${{ inputs.HEALTH_CODE }} \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..b0250bf --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +echo "==================================================" + +echo "參數檢查" + +echo "--------------------------------------------------" + +# 顯示 CHECK_URL 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出 +echo "CHECK_URL=$CHECK_URL" && ([ -z "$CHECK_URL" ] || [ "$CHECK_URL" = "null" ]) && exit 1 + +# 顯示 HEALTH_CODE 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出 +echo "HEALTH_CODE=$HEALTH_CODE" && ([ -z "$HEALTH_CODE" ] || [ "$HEALTH_CODE" = "null" ]) && exit 1 + +echo "==================================================" + +echo "取得狀態碼" + +echo "--------------------------------------------------" + +# 使用 curl 從 CHECK_URL 取得狀態碼,並將結果存儲在 STATUS_CODE 變數中 +STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$CHECK_URL") && echo "STATUS_CODE=$STATUS_CODE" + +# 將狀態碼輸出到環境變數 +echo "status_code=$STATUS_CODE" >> $GITHUB_OUTPUT + +echo "==================================================" \ No newline at end of file