From 129e2ec2d7d2e2fa60b92c8264a2e92e643ac8c7 Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Sun, 12 Jul 2026 11:14:58 +0900 Subject: [PATCH] ci: parallelize independent validation jobs --- .gitea/workflows/ci.yml | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 1abf4d6c..0bf0cc6e 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -7,9 +7,11 @@ on: branches: [ main ] workflow_dispatch: -# Phase 3: Validator pipeline -# Main branch push validation moved to merge-to-main.yml -# This workflow runs validators only on PRs for feedback +# Validator pipeline. Independent validation jobs run in parallel. + +concurrency: + group: quantengine-ci-${{ github.ref }} + cancel-in-progress: true jobs: validate-core: @@ -65,7 +67,7 @@ jobs: fi else echo "=== npm install (최초 or lock 변경) ===" - npm install --quiet + npm ci --quiet # 캐시 저장 mkdir -p "$CACHE_DIR" cp -r node_modules "$CACHE_DIR/node_modules" @@ -198,8 +200,6 @@ jobs: validate-ui-and-storage: runs-on: ubuntu-latest - needs: validate-core - if: needs.validate-core.result == 'success' steps: - name: Checkout Code @@ -220,23 +220,17 @@ jobs: /usr/bin/python3 -c 'import requests, yaml, openpyxl; print("Python dependencies: PASS")' - name: Validate Snapshot Admin Web UI - if: needs.validate-core.result == 'success' run: python3 tools/validate_snapshot_admin_web_v1.py - name: Validate Storage Backend Contracts - if: needs.validate-core.result == 'success' run: python3 -m pytest tests/unit/test_storage_backend_v1.py tests/unit/test_validate_kis_api_credentials_v1.py tests/unit/test_qualitative_sell_strategy_store_v1.py tests/unit/test_kis_api_client_v1.py tests/unit/test_snapshot_admin_store_v1.py tests/unit/test_snapshot_admin_web_v1.py -q - name: Notify PR Result if: always() && github.event_name == 'pull_request' env: - CORE_RESULT: ${{ needs.validate-core.result }} STAGE_RESULT: ${{ job.status }} run: | STATUS="$STAGE_RESULT" - if [ "$CORE_RESULT" != "success" ]; then - STATUS="failure" - fi PR_NUM="${{ github.event.pull_request.number }}" RUN_URL="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" if [ "$STATUS" = "success" ]; then