name: "Copilot Setup Steps" # This workflow configures the environment for GitHub Copilot Agent # Automatically run the setup steps when they are changed to allow for easy validation on: workflow_dispatch: push: paths: - .github/workflows/copilot-setup-steps.yml pull_request: paths: - .github/workflows/copilot-setup-steps.yml jobs: # The job MUST be called 'copilot-setup-steps' to be recognized by GitHub Copilot Agent copilot-setup-steps: if: github.event.repository.fork == false runs-on: ubuntu-latest # Set minimal permissions for setup steps # Copilot Agent receives its own token with appropriate permissions permissions: contents: read steps: # Checkout the repository to install dependencies - name: Checkout code uses: actions/checkout@v6.0.2 # Setup Node.js (for TypeScript/JavaScript SDK and tooling) - name: Set up Node.js uses: actions/setup-node@v6 with: node-version: "22" cache: "npm" cache-dependency-path: | ./nodejs/package-lock.json ./test/harness/package-lock.json ./java/scripts/codegen/package-lock.json # Setup Python (for Python SDK) - name: Set up Python uses: actions/setup-python@v6 with: python-version: "3.12" # Setup uv (Python package manager used in this repo) - name: Set up uv uses: astral-sh/setup-uv@v7 with: enable-cache: true # Setup Go (for Go SDK) - name: Set up Go uses: actions/setup-go@v6 with: go-version: "1.24" # Setup .NET (for .NET SDK) - name: Set up .NET uses: actions/setup-dotnet@v5 with: dotnet-version: "10.0.x" # Setup Java (for Java SDK) - name: Set up JDK uses: actions/setup-java@v4 with: distribution: "microsoft" java-version: "17" cache: "maven" # Install just command runner - name: Install just uses: extractions/setup-just@v3 # Install gh-aw extension for advanced GitHub CLI features - name: Install gh-aw extension uses: github/gh-aw/actions/setup-cli@0feed75a980b06f247abbbf80127f8eb2c19e2c5 # v0.74.8 with: version: v0.74.4 # Enable repository pre-commit hooks (Spotless checks for Java source changes) - name: Enable pre-commit hooks run: git config core.hooksPath .githooks # Install JavaScript dependencies - name: Install Node.js dependencies working-directory: ./nodejs run: npm ci --ignore-scripts # Install Python dependencies - name: Install Python dependencies working-directory: ./python run: uv sync --all-extras --dev # Install Go dependencies - name: Install Go dependencies working-directory: ./go run: go mod download # Restore .NET dependencies - name: Restore .NET dependencies working-directory: ./dotnet run: dotnet restore # Install test harness dependencies - name: Install test harness dependencies working-directory: ./test/harness run: npm ci --ignore-scripts # Install Java codegen dependencies - name: Install Java codegen dependencies working-directory: ./java/scripts/codegen run: npm ci # Verify installations - name: Verify tool installations run: | echo "=== Verifying installations ===" node --version npm --version python --version uv --version go version dotnet --version java -version mvn --version just --version gh --version gh aw version echo "✅ All tools installed successfully"