From f5036dbd1512dca73b25a6bb94e71b7398a66dea Mon Sep 17 00:00:00 2001 From: Jeffery Date: Sat, 21 Mar 2026 21:50:02 +0800 Subject: [PATCH] first commit --- .gitea/workflows/master.yaml | 27 +++++++++++++++++++++++++++ Dockerfile | 11 +++++++++++ action.yaml | 22 ++++++++++++++++++++++ entrypoint.sh | 26 ++++++++++++++++++++++++++ 4 files changed, 86 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..d52fa34 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM alpine:latest + +# 更新並安裝必要的工具 +RUN apk update \ + && apk add --no-cache bash zip + +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..86e8f37 --- /dev/null +++ b/action.yaml @@ -0,0 +1,22 @@ +name: 'ZIP' +description: '壓縮檔案' +author: 'Jeffery' +inputs: + RELEASE_PROJECT: + description: '專案名稱' + required: true + RELEASE_VERSION: + description: '專案版本' + required: true + RELEASE_FOLDER: + description: '要壓縮的資料夾' + required: true + default: 'output' +runs: + using: 'docker' + image: 'Dockerfile' + env: + RELEASE_PROJECT: ${{ inputs.RELEASE_PROJECT }} + RELEASE_VERSION: ${{ inputs.RELEASE_VERSION }} + RELEASE_FOLDER: ${{ inputs.RELEASE_FOLDER }} + ZIP_FILE: ${{ inputs.ZIP_FILE }} \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..b6650d0 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +echo "==================================================" + +echo "參數檢查" + +echo "--------------------------------------------------" + +# 顯示 RELEASE_PROJECT 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出 +echo "RELEASE_PROJECT=$RELEASE_PROJECT" && ([ -z "$RELEASE_PROJECT" ] || [ "$RELEASE_PROJECT" = "null" ]) && exit 1 + +# 顯示 RELEASE_VERSION 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出 +echo "RELEASE_VERSION=$RELEASE_VERSION" && ([ -z "$RELEASE_VERSION" ] || [ "$RELEASE_VERSION" = "null" ]) && exit 1 + +# 顯示 RELEASE_FOLDER 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出 +echo "RELEASE_FOLDER=$RELEASE_FOLDER" && ([ -z "$RELEASE_FOLDER" ] || [ "$RELEASE_FOLDER" = "null" ]) && exit 1 + +echo "==================================================" + +echo "壓縮檔案" + +echo "--------------------------------------------------" + +zip -r "$RELEASE_PROJECT.$RELEASE_VERSION.zip" $RELEASE_FOLDER/* + +echo "==================================================" \ No newline at end of file