diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a31159b..3f8365bd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: # Job 0: Generate CI matrix (selective execution - RFC-045) generate-matrix: name: Generate CI Matrix - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 5 outputs: matrix: ${{ steps.matrix.outputs.matrix }} @@ -136,7 +136,7 @@ jobs: # Job 1: Generate protobuf code once (new) generate-proto: name: Generate Protobuf Code - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 10 steps: @@ -203,7 +203,7 @@ jobs: # Job 1: Lint Rust code lint-rust: name: Lint Rust - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 10 steps: @@ -242,7 +242,7 @@ jobs: # Job 2: Lint Python code lint-python: name: Lint Python - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 5 steps: @@ -268,7 +268,7 @@ jobs: # Job 2b: Lint Protobuf files lint-proto: name: Lint Protobuf - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 5 steps: @@ -297,7 +297,7 @@ jobs: # Job 2c: Lint GitHub Actions workflows lint-github-actions: name: Lint GitHub Actions - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 5 steps: @@ -314,7 +314,7 @@ jobs: # Job 3: Lint Go code (parallel by category) lint-go: name: Lint Go (${{ matrix.category }}) - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 15 needs: generate-proto @@ -393,7 +393,7 @@ jobs: # Build Jobs (run early in parallel after linting passes) build-rust: name: Build Rust Components - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 10 needs: lint-rust @@ -439,7 +439,7 @@ jobs: build-go: name: Build Go Components - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 15 needs: [generate-proto, lint-go] @@ -505,7 +505,7 @@ jobs: # Job 2: Test Rust proxy test-proxy: name: Test Rust Proxy - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 15 steps: @@ -561,7 +561,7 @@ jobs: # Job 3: Test Go drivers and patterns (including acceptance tests) test-patterns: name: Test ${{ matrix.name }} - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 15 needs: [generate-matrix, generate-proto] if: needs.generate-matrix.outputs.run_full == 'true' || needs.generate-matrix.outputs.has_test == 'true' @@ -684,7 +684,7 @@ jobs: # Job 4: Integration tests test-integration: name: Integration Tests - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 10 needs: [generate-matrix, generate-proto] if: needs.generate-matrix.outputs.run_full == 'true' || needs.generate-matrix.outputs.has_test == 'true' @@ -732,7 +732,7 @@ jobs: # Job 6: Validate documentation validate-docs: name: Validate Documentation - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 10 steps: @@ -767,7 +767,7 @@ jobs: # Unified build status (skipped, parallel builds above replace this) build: name: Build All Components - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 5 needs: [build-rust, build-go, test-proxy, test-patterns, test-integration] if: always() @@ -788,7 +788,7 @@ jobs: # Job 8: Coverage summary coverage-summary: name: Coverage Summary - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 5 needs: [test-proxy, test-patterns, test-integration] if: always() @@ -820,7 +820,7 @@ jobs: # Job 9: Upload to Codecov codecov-upload: name: Upload Coverage to Codecov - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 10 needs: [test-proxy, test-patterns, test-integration] if: always() @@ -861,7 +861,7 @@ jobs: # Job 10: CI status check (required for merge) ci-status: name: CI Status Check - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 5 needs: [ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d5183f89..7f409162 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,7 +36,7 @@ jobs: # ============================================================================ generate-proto: name: Generate Protobuf Code - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 10 steps: @@ -99,7 +99,7 @@ jobs: os: [linux, darwin, windows] arch: [amd64, arm64] runner: - - ubuntu-latest + - self-hosted exclude: # Windows arm64 cross-compilation is tricky - os: windows @@ -247,11 +247,11 @@ jobs: matrix: include: - target: x86_64-unknown-linux-gnu - runner: ubuntu-latest + runner: self-hosted os: linux arch: amd64 - target: aarch64-unknown-linux-gnu - runner: ubuntu-latest + runner: self-hosted os: linux arch: arm64 - target: x86_64-apple-darwin @@ -379,7 +379,7 @@ jobs: # ============================================================================ build-python-client: name: Build Python Client Package - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 15 steps: @@ -504,7 +504,7 @@ jobs: # ============================================================================ build-images: name: Build Docker Image (${{ matrix.service }}-${{ matrix.variant }}) - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 30 needs: [generate-proto, build-binaries] @@ -679,7 +679,7 @@ jobs: # ============================================================================ create-release: name: Create GitHub Release - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 10 needs: [build-binaries, build-proxy, build-python-client, build-images] if: (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')) || inputs.publish_artifacts @@ -797,7 +797,7 @@ jobs: # ============================================================================ release-status: name: Release Status - runs-on: ubuntu-latest + runs-on: self-hosted timeout-minutes: 5 needs: [create-release] if: always()