自动同步 workflow 不覆盖现有 CI
All checks were successful
itom-platform auto build image / build (push) Successful in 2m39s
All checks were successful
itom-platform auto build image / build (push) Successful in 2m39s
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user