Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/code-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ env:
jobs:
coverage:
name: Code Coverage
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]
permissions:
contents: read
pull-requests: write
Expand All @@ -49,6 +49,8 @@ jobs:
uses: taiki-e/install-action@cargo-llvm-cov

- name: Free up disk space
# Only needed on github-hosted; smithy redirects TMPDIR to a 500G volume.
if: runner.environment == 'github-hosted'
run: |
# Remove unnecessary tools and files to free up ~10GB
sudo rm -rf /usr/share/dotnet
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/docker-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ env:
jobs:
build-validation-image:
name: Build Validation Docker Image
# Stays on ubuntu-latest: docker buildx + GHCR push; smithy's podman-docker shim is untested for this.
runs-on: ubuntu-latest
permissions:
contents: read
Expand Down Expand Up @@ -68,6 +69,7 @@ jobs:
validate-in-container:
name: Run Validation in Container
needs: build-validation-image
# Stays on ubuntu-latest: pulls + runs a container image; smithy podman-docker shim is untested.
runs-on: ubuntu-latest
if: success()

Expand Down Expand Up @@ -102,7 +104,7 @@ jobs:

multi-version-testing:
name: Multi-Version Protocol Testing
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]
strategy:
matrix:
protocol_version: ["2024-11-05", "2025-03-26"]
Expand Down
13 changes: 8 additions & 5 deletions .github/workflows/external-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
# Fast validation for PRs - Ubuntu only
validate-framework-fast:
name: Fast Framework Validation
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]
timeout-minutes: 25
if: github.event_name == 'pull_request'

Expand Down Expand Up @@ -86,6 +86,7 @@ jobs:
# Full cross-platform validation for main branch and scheduled runs
validate-framework:
name: Full Framework Validation
# Stays on ubuntu-latest/macos-latest/windows-latest: matrix spans macOS + Windows; smithy is Linux-only.
runs-on: ${{ matrix.os }}
timeout-minutes: 35
if: github.event_name != 'pull_request'
Expand Down Expand Up @@ -270,7 +271,7 @@ jobs:

stdio-integration-tests:
name: Stdio + Inspector Integration Tests
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]
timeout-minutes: 20
if: github.event_name == 'push' || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'

Expand Down Expand Up @@ -354,7 +355,7 @@ jobs:

python-sdk-compatibility:
name: Python SDK Compatibility
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]
timeout-minutes: 15
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/main'

Expand Down Expand Up @@ -392,7 +393,7 @@ jobs:

external-validator-integration:
name: External Validator Integration
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]
timeout-minutes: 20
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'

Expand Down Expand Up @@ -432,6 +433,8 @@ jobs:

security-validation:
name: Security Validation
# Stays on ubuntu-latest: runs cargo audit; smithy's pinned cargo-audit (0.21.x) rejects CVSS 4.0
# advisories (e.g. RUSTSEC-2026-0037). Move once smithy bumps cargo-audit to >=0.22.1.
runs-on: ubuntu-latest
timeout-minutes: 15
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.ref == 'refs/heads/main'
Expand Down Expand Up @@ -461,7 +464,7 @@ jobs:

benchmark-validation:
name: Performance Benchmarks
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]
timeout-minutes: 25
if: github.event_name == 'push' && github.ref == 'refs/heads/main'

Expand Down
12 changes: 7 additions & 5 deletions .github/workflows/pr-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ env:
jobs:
changes:
name: Detect Changes
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, light]
outputs:
validation: ${{ steps.filter.outputs.validation }}
core: ${{ steps.filter.outputs.core }}
Expand All @@ -40,7 +40,7 @@ jobs:

quick-validation:
name: Quick PR Validation
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]
needs: changes

steps:
Expand All @@ -62,6 +62,8 @@ jobs:
echo "Rustfmt version: $(cargo fmt --version)"

- name: Free up disk space
# Only needed on github-hosted; smithy redirects TMPDIR to a 500G volume.
if: runner.environment == 'github-hosted'
run: |
# Remove unnecessary tools and files to free up ~10GB
sudo rm -rf /usr/share/dotnet
Expand Down Expand Up @@ -142,7 +144,7 @@ jobs:

validation-specific-tests:
name: Validation Framework Tests
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]
needs: changes
if: needs.changes.outputs.validation == 'true'

Expand Down Expand Up @@ -180,7 +182,7 @@ jobs:

compatibility-check:
name: Compatibility Check
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]
needs: changes
if: needs.changes.outputs.core == 'true'

Expand All @@ -205,7 +207,7 @@ jobs:

pr-report:
name: Generate PR Report
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, light]
needs: [quick-validation, validation-specific-tests, compatibility-check]
if: always()

Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/release-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ permissions:
jobs:
validate-release:
name: Validate Release
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]

steps:
- name: Checkout code
Expand Down Expand Up @@ -118,6 +118,7 @@ jobs:

cross-platform-validation:
name: Cross-Platform Release Validation
# Stays on ubuntu-latest/macos-latest/windows-latest: matrix spans macOS + Windows; smithy is Linux-only.
runs-on: ${{ matrix.os }}
strategy:
matrix:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/scheduled-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ permissions:
jobs:
validate-external-servers:
name: Validate External MCP Servers
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, rust-cpu]

steps:
- name: Checkout code
Expand Down Expand Up @@ -148,7 +148,7 @@ jobs:

update-compatibility-matrix:
name: Update Compatibility Matrix
runs-on: ubuntu-latest
runs-on: [self-hosted, linux, x64, light]
needs: validate-external-servers

steps:
Expand Down
Loading