From ea5b06752a90753b24ace2c77accea7f9d9ee099 Mon Sep 17 00:00:00 2001 From: "kim.dev.6789" Date: Fri, 16 Jan 2026 11:28:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=90=8C=E6=AD=A5=20workflow?= =?UTF-8?q?=20=E4=B8=8D=E8=A6=86=E7=9B=96=E7=8E=B0=E6=9C=89=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/itom-platform-auto-build.yml | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/itom-platform-auto-build.yml b/.gitea/workflows/itom-platform-auto-build.yml index 45baf6f..03432ad 100644 --- a/.gitea/workflows/itom-platform-auto-build.yml +++ b/.gitea/workflows/itom-platform-auto-build.yml @@ -12,14 +12,11 @@ permissions: env: # CI 触发模式:优先仓库变量,其次 Secrets(默认 dispatch) - CI_TRIGGER_MODE: ${{ vars.CI_TRIGGER_MODE || secrets.CI_TRIGGER_MODE || 'dispatch' }} + CI_TRIGGER_MODE_VAR: ${{ vars.CI_TRIGGER_MODE }} + CI_TRIGGER_MODE_SECRET: ${{ secrets.CI_TRIGGER_MODE }} jobs: build: - # 触发开关:CI_TRIGGER_MODE=dispatch|push|both - if: | - (github.event_name == 'workflow_dispatch' && (env.CI_TRIGGER_MODE == 'dispatch' || env.CI_TRIGGER_MODE == 'both')) || - (github.event_name == 'push' && (env.CI_TRIGGER_MODE == 'push' || env.CI_TRIGGER_MODE == 'both')) runs-on: ubuntu-latest env: @@ -31,7 +28,33 @@ jobs: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} steps: + - name: Check trigger mode + shell: sh + run: | + set -eu + MODE="${CI_TRIGGER_MODE_VAR:-${CI_TRIGGER_MODE_SECRET:-dispatch}}" + EVENT="${GITHUB_EVENT_NAME:-${GITEA_EVENT_NAME:-}}" + ALLOW="false" + case "$EVENT" in + workflow_dispatch) + if [ "$MODE" = "dispatch" ] || [ "$MODE" = "both" ]; then + ALLOW="true" + fi + ;; + push) + if [ "$MODE" = "push" ] || [ "$MODE" = "both" ]; then + ALLOW="true" + fi + ;; + esac + echo "CI_TRIGGER_MODE=$MODE" >> "$GITHUB_ENV" + echo "CI_TRIGGER_ALLOWED=$ALLOW" >> "$GITHUB_ENV" + if [ "$ALLOW" != "true" ]; then + echo "Skip build: event=$EVENT mode=$MODE" + fi + - name: Install git + if: ${{ env.CI_TRIGGER_ALLOWED == 'true' }} shell: sh run: | set -eu @@ -40,6 +63,7 @@ jobs: fi - name: Checkout + if: ${{ env.CI_TRIGGER_ALLOWED == 'true' }} shell: sh env: GIT_USER: ${{ secrets.GIT_USER }} @@ -92,6 +116,7 @@ jobs: fi - name: Prepare tags + if: ${{ env.CI_TRIGGER_ALLOWED == 'true' }} shell: sh run: | set -eu @@ -106,6 +131,7 @@ jobs: echo "SHA_SHORT=$SHA_SHORT" >> "$GITHUB_ENV" - name: Resolve Dockerfile + if: ${{ env.CI_TRIGGER_ALLOWED == 'true' }} shell: sh run: | set -eu @@ -128,6 +154,7 @@ jobs: - name: Login registry + if: ${{ env.CI_TRIGGER_ALLOWED == 'true' }} shell: sh env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} @@ -142,6 +169,7 @@ jobs: echo "$DOCKER_PASSWORD" | docker login "$REGISTRY" -u "$DOCKER_USERNAME" --password-stdin - name: Build and push images + if: ${{ env.CI_TRIGGER_ALLOWED == 'true' }} shell: sh run: | set -eu