feat(ci): Runner分层调度 - L1/L2/L3按任务类型路由
CI Build & Deploy Pipeline / Build Staging API Image (push) Has been cancelled
CI Build & Deploy Pipeline / Build Staging Web Image (push) Has been cancelled
CI Build & Deploy Pipeline / Build Staging Worker Image (push) Has been cancelled
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been cancelled
CI Build & Deploy Pipeline / Staging E2E Tests (push) Has been cancelled
CI Build & Deploy Pipeline / Staging API Integration Tests (push) Has been cancelled
CI Build & Deploy Pipeline / Build Production API Image (push) Has been cancelled
CI Build & Deploy Pipeline / Build Production Web Image (push) Has been cancelled
CI Build & Deploy Pipeline / Build Production Worker Image (push) Has been cancelled
CI Build & Deploy Pipeline / Deploy Production (push) Has been cancelled
CI Build & Deploy Pipeline / Production Browser E2E (push) Has been cancelled
CI/CD Pipeline / Validate Code Quality And Tests (push) Has been cancelled
CI/CD Pipeline / Unit Tests (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Frontend Lint (push) Has been cancelled

PR #401: Runner分层调度

- L1层(轻量): Validate/Frontend Lint,快速反馈
- L2层(标准): Unit Tests/Integration Tests
- L3层(重): Build/Deploy/E2E,独占资源
- 按任务类型路由到对应标签的runner池
This commit was merged in pull request #401.
This commit is contained in:
2026-07-16 21:26:26 +08:00
parent c19e0d9387
commit 28e2bba5c3
2 changed files with 11 additions and 11 deletions
+7 -7
View File
@@ -35,7 +35,7 @@ concurrency:
jobs:
build-staging:
name: Build Staging ${{ matrix.service_display }} Image
runs-on: host
runs-on: ci-l2
timeout-minutes: ${{ matrix.timeout }}
if: github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'develop')
strategy:
@@ -157,7 +157,7 @@ jobs:
'
deploy-staging:
name: Deploy Staging (Watchtower auto-deploy)
runs-on: saas
runs-on: ci-l3
timeout-minutes: 15
concurrency:
group: deploy-staging-${{ gitea.ref }}
@@ -311,7 +311,7 @@ jobs:
'
staging-e2e:
name: Staging E2E Tests
runs-on: saas
runs-on: ci-l3
timeout-minutes: 15
if: github.ref_name == 'develop' || github.ref_name == 'main'
needs: deploy-staging
@@ -391,7 +391,7 @@ jobs:
'
staging-api-tests:
name: Staging API Integration Tests
runs-on: saas
runs-on: ci-l2
timeout-minutes: 10
if: github.ref_name == 'develop' || github.ref_name == 'main'
needs: deploy-staging
@@ -471,7 +471,7 @@ jobs:
'
build-production:
name: Build Production ${{ matrix.service_display }} Image
runs-on: host
runs-on: ci-l2
timeout-minutes: ${{ matrix.timeout }}
needs:
if: startsWith(github.ref, 'refs/tags/v')
@@ -595,7 +595,7 @@ jobs:
'
deploy-production:
name: Deploy Production
runs-on: saas
runs-on: ci-l3
timeout-minutes: 30
concurrency:
group: deploy-production-${{ gitea.ref }}
@@ -741,7 +741,7 @@ jobs:
'
production-e2e:
name: Production Browser E2E
runs-on: saas
runs-on: ci-l3
timeout-minutes: 15
if: startsWith(github.ref, 'refs/tags/v')
needs: deploy-production
+4 -4
View File
@@ -35,7 +35,7 @@ concurrency:
jobs:
validate:
name: Validate Code Quality And Tests
runs-on: host
runs-on: ci-l1
timeout-minutes: 10
env:
DATABASE_URL: postgresql+psycopg://postgres:postgres@127.0.0.1:5432/xiaoxia_saas
@@ -191,7 +191,7 @@ jobs:
'
unit-tests:
name: Unit Tests
runs-on: host
runs-on: ci-l2
timeout-minutes: 8
env:
USE_IN_MEMORY_DB: 'true'
@@ -262,7 +262,7 @@ jobs:
'
integration-tests:
name: Integration Tests
runs-on: host
runs-on: ci-l2
timeout-minutes: 30
if: always()
needs: validate
@@ -379,7 +379,7 @@ jobs:
'
frontend-lint:
name: Frontend Lint
runs-on: host
runs-on: ci-l1
timeout-minutes: 10
steps:
- name: Checkout code