diff --git a/.github/actions/check-ci/action.yml b/.github/actions/check-ci/action.yml deleted file mode 100644 index 59b4dad024..0000000000 --- a/.github/actions/check-ci/action.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: 'Check CI Gate' -description: 'Determine if CI should run based on author association and labels' - -outputs: - should_run: - description: 'Whether CI should run' - value: ${{ steps.check.outputs.should_run }} - -runs: - using: 'composite' - steps: - - id: check - shell: bash - run: | - EVENT="${{ github.event_name }}" - AUTHOR="${{ github.event.pull_request.author_association }}" - ACTOR="${{ github.actor }}" - LABEL="${{ github.event.label.name }}" - HAS_RUN_CI="${{ contains(github.event.pull_request.labels.*.name, 'run-ci') }}" - - should_run="false" - reason="" - - if [[ "$EVENT" != "pull_request" ]]; then - should_run="true" - reason="not a pull request ($EVENT)" - elif [[ "$ACTOR" == "dependabot[bot]" ]]; then - should_run="true" - reason="Dependabot" - elif [[ "$AUTHOR" =~ ^(OWNER|MEMBER|COLLABORATOR)$ ]]; then - should_run="true" - reason="trusted contributor ($AUTHOR)" - elif [[ "${{ github.event.action }}" == "labeled" && "$LABEL" == "run-ci" ]]; then - should_run="true" - reason="run-ci label added" - elif [[ "$HAS_RUN_CI" == "true" ]]; then - should_run="true" - reason="has run-ci label" - fi - - echo "should_run=${should_run}" >> $GITHUB_OUTPUT - - if [[ "$should_run" == "true" ]]; then - echo "✅ CI allowed: $reason" - else - echo "::notice::CI skipped for external contributor ($AUTHOR). Add 'run-ci' label to run." - fi diff --git a/.github/workflows/benchmark-manual-policy.yml b/.github/workflows/benchmark-manual-policy.yml index 86a3c72d76..b2145b2db3 100644 --- a/.github/workflows/benchmark-manual-policy.yml +++ b/.github/workflows/benchmark-manual-policy.yml @@ -33,23 +33,9 @@ permissions: contents: read jobs: - check-ci: - runs-on: ubuntu-latest - outputs: - should_run: ${{ steps.check.outputs.should_run }} - steps: - - uses: actions/checkout@v6 - with: - sparse-checkout: .github/actions/check-ci - - id: check - uses: ./.github/actions/check-ci - benchmark: name: Manual Policy (Sticky Sessions) - needs: check-ci - if: | - github.repository == 'lightseekorg/smg' && - needs.check-ci.outputs.should_run == 'true' + if: github.repository == 'lightseekorg/smg' runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/benchmark-radix-tree.yml b/.github/workflows/benchmark-radix-tree.yml index 3a67bd81bc..210cc094fd 100644 --- a/.github/workflows/benchmark-radix-tree.yml +++ b/.github/workflows/benchmark-radix-tree.yml @@ -33,23 +33,9 @@ permissions: contents: read jobs: - check-ci: - runs-on: ubuntu-latest - outputs: - should_run: ${{ steps.check.outputs.should_run }} - steps: - - uses: actions/checkout@v6 - with: - sparse-checkout: .github/actions/check-ci - - id: check - uses: ./.github/actions/check-ci - benchmark: name: Radix Tree (Cache-Aware Routing) - needs: check-ci - if: | - github.repository == 'lightseekorg/smg' && - needs.check-ci.outputs.should_run == 'true' + if: github.repository == 'lightseekorg/smg' runs-on: k8s-runner-gpu steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/benchmark-request-processing.yml b/.github/workflows/benchmark-request-processing.yml index aba60998d7..4707f2f736 100644 --- a/.github/workflows/benchmark-request-processing.yml +++ b/.github/workflows/benchmark-request-processing.yml @@ -37,23 +37,9 @@ permissions: contents: read jobs: - check-ci: - runs-on: ubuntu-latest - outputs: - should_run: ${{ steps.check.outputs.should_run }} - steps: - - uses: actions/checkout@v6 - with: - sparse-checkout: .github/actions/check-ci - - id: check - uses: ./.github/actions/check-ci - benchmark: name: Request Processing - needs: check-ci - if: | - github.repository == 'lightseekorg/smg' && - needs.check-ci.outputs.should_run == 'true' + if: github.repository == 'lightseekorg/smg' runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/benchmark-tokenizer.yml b/.github/workflows/benchmark-tokenizer.yml index ec4a24bd9e..6aa4c45242 100644 --- a/.github/workflows/benchmark-tokenizer.yml +++ b/.github/workflows/benchmark-tokenizer.yml @@ -33,23 +33,9 @@ permissions: contents: read jobs: - check-ci: - runs-on: ubuntu-latest - outputs: - should_run: ${{ steps.check.outputs.should_run }} - steps: - - uses: actions/checkout@v6 - with: - sparse-checkout: .github/actions/check-ci - - id: check - uses: ./.github/actions/check-ci - benchmark: name: Tokenizer - needs: check-ci - if: | - github.repository == 'lightseekorg/smg' && - needs.check-ci.outputs.should_run == 'true' + if: github.repository == 'lightseekorg/smg' runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/benchmark-tool-parser.yml b/.github/workflows/benchmark-tool-parser.yml index fee36bffbc..a45582d853 100644 --- a/.github/workflows/benchmark-tool-parser.yml +++ b/.github/workflows/benchmark-tool-parser.yml @@ -33,23 +33,9 @@ permissions: contents: read jobs: - check-ci: - runs-on: ubuntu-latest - outputs: - should_run: ${{ steps.check.outputs.should_run }} - steps: - - uses: actions/checkout@v6 - with: - sparse-checkout: .github/actions/check-ci - - id: check - uses: ./.github/actions/check-ci - benchmark: name: Tool Parser - needs: check-ci - if: | - github.repository == 'lightseekorg/smg' && - needs.check-ci.outputs.should_run == 'true' + if: github.repository == 'lightseekorg/smg' runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/pr-test-rust.yml b/.github/workflows/pr-test-rust.yml index 6e240cc0b0..a2a151e0d4 100644 --- a/.github/workflows/pr-test-rust.yml +++ b/.github/workflows/pr-test-rust.yml @@ -9,7 +9,7 @@ on: - "*.md" pull_request: branches: [ main ] - types: [opened, synchronize, reopened, labeled] + types: [opened, synchronize, reopened] paths-ignore: - "docs/**" - "mkdocs.yml" @@ -29,22 +29,7 @@ env: GENAI_BENCH_IMAGE: ghcr.io/moirai-internal/genai-bench:0.0.3 jobs: - check-ci: - runs-on: k8s-runner-cpu - permissions: - contents: read - outputs: - should_run: ${{ steps.check.outputs.should_run }} - steps: - - uses: actions/checkout@v6 - with: - sparse-checkout: .github/actions/check-ci - - id: check - uses: ./.github/actions/check-ci - python-lint: - needs: check-ci - if: needs.check-ci.outputs.should_run == 'true' runs-on: k8s-runner-cpu permissions: contents: read @@ -72,8 +57,6 @@ jobs: run: mypy bindings/python/ --config-file mypy.ini grpc-proto-build-check: - needs: check-ci - if: needs.check-ci.outputs.should_run == 'true' runs-on: k8s-runner-cpu permissions: contents: read @@ -100,8 +83,6 @@ jobs: python -c "from smg_grpc_proto import sglang_scheduler_pb2; print('OK')" build-wheel: - needs: check-ci - if: needs.check-ci.outputs.should_run == 'true' runs-on: k8s-runner-gpu permissions: contents: read @@ -204,8 +185,6 @@ jobs: pytest -q tests --cov=smg --cov-config=.coveragerc --cov-report=term-missing --cov-fail-under=80 unit-tests: - needs: check-ci - if: needs.check-ci.outputs.should_run == 'true' runs-on: k8s-runner-cpu permissions: contents: read @@ -257,8 +236,8 @@ jobs: gateway-e2e: name: ${{ matrix.name }} - needs: [check-ci, build-wheel] - if: needs.check-ci.outputs.should_run == 'true' + needs: build-wheel + if: github.actor != 'dependabot[bot]' permissions: contents: read strategy: @@ -411,8 +390,7 @@ jobs: go-unit-tests: name: go-unit-tests - needs: [check-ci, build-wheel] - if: needs.check-ci.outputs.should_run == 'true' + needs: build-wheel runs-on: k8s-runner-cpu timeout-minutes: 15 permissions: @@ -452,8 +430,8 @@ jobs: go-bindings-e2e: name: go-bindings-e2e - needs: [check-ci, build-wheel] - if: needs.check-ci.outputs.should_run == 'true' + needs: build-wheel + if: github.actor != 'dependabot[bot]' runs-on: k8s-runner-gpu timeout-minutes: 20 permissions: @@ -505,7 +483,7 @@ jobs: go-bindings-benchmark: name: go-bindings-benchmark - needs: [check-ci, build-wheel] + needs: build-wheel if: false # Disabled runs-on: k8s-runner-gpu timeout-minutes: 32 @@ -568,17 +546,21 @@ jobs: path: benchmark_go_bindings/ finish: - needs: [check-ci, python-lint, grpc-proto-build-check, build-wheel, python-unit-tests, unit-tests, gateway-e2e, go-unit-tests, go-bindings-e2e] + needs: [python-lint, grpc-proto-build-check, build-wheel, python-unit-tests, unit-tests, gateway-e2e, go-unit-tests, go-bindings-e2e] if: always() runs-on: k8s-runner-cpu permissions: {} steps: - name: Check CI result run: | - if [[ "${{ needs.check-ci.outputs.should_run }}" != "true" ]]; then - echo "CI was skipped (external contributor without run-ci label)" - exit 0 - elif [[ "${{ needs.python-lint.result }}" == "failure" || "${{ needs.grpc-proto-build-check.result }}" == "failure" || "${{ needs.build-wheel.result }}" == "failure" || "${{ needs.python-unit-tests.result }}" == "failure" || "${{ needs.unit-tests.result }}" == "failure" || "${{ needs.gateway-e2e.result }}" == "failure" || "${{ needs.go-unit-tests.result }}" == "failure" || "${{ needs.go-bindings-e2e.result }}" == "failure" ]]; then + if [[ "${{ needs.python-lint.result }}" == "failure" || \ + "${{ needs.grpc-proto-build-check.result }}" == "failure" || \ + "${{ needs.build-wheel.result }}" == "failure" || \ + "${{ needs.python-unit-tests.result }}" == "failure" || \ + "${{ needs.unit-tests.result }}" == "failure" || \ + "${{ needs.gateway-e2e.result }}" == "failure" || \ + "${{ needs.go-unit-tests.result }}" == "failure" || \ + "${{ needs.go-bindings-e2e.result }}" == "failure" ]]; then echo "One or more jobs failed" exit 1 else