chore(release): bump version to v1.4.8 #111
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "Copilot Setup Steps" | |
| # Automatically run the setup steps when they are changed to allow for easy validation, and | |
| # allow manual testing through the repository's "Actions" tab | |
| on: | |
| workflow_dispatch: | |
| push: | |
| paths: | |
| - .github/workflows/copilot-setup-steps.yml | |
| - .github/copilot-mcp.json | |
| pull_request: | |
| paths: | |
| - .github/workflows/copilot-setup-steps.yml | |
| - .github/copilot-mcp.json | |
| permissions: | |
| contents: read | |
| env: | |
| NODE_VERSION: "26" | |
| MCP_SERVER_FILESYSTEM_VERSION: "2026.1.14" | |
| MCP_SERVER_MEMORY_VERSION: "2026.1.26" | |
| MCP_SERVER_SEQUENTIAL_THINKING_VERSION: "2025.12.18" | |
| PLAYWRIGHT_MCP_VERSION: "0.0.75" | |
| GITHUB_TOKEN: ${{ secrets.COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKEN }} | |
| GITHUB_PERSONAL_ACCESS_TOKEN: ${{ secrets.COPILOT_MCP_GITHUB_PERSONAL_ACCESS_TOKEN }} | |
| # Resilience against transient npm registry / mirror failures — | |
| # important for the global MCP installs below that can otherwise hang. | |
| NPM_CONFIG_FETCH_RETRIES: "5" | |
| NPM_CONFIG_FETCH_RETRY_MINTIMEOUT: "20000" | |
| NPM_CONFIG_FETCH_RETRY_MAXTIMEOUT: "120000" | |
| NPM_CONFIG_FETCH_TIMEOUT: "300000" | |
| jobs: | |
| # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot. | |
| copilot-setup-steps: | |
| runs-on: ubuntu-26.04 | |
| # Set the permissions to the lowest permissions possible needed for your steps. | |
| # Copilot will be given its own token for its operations. | |
| permissions: | |
| contents: read | |
| # Steps run before the agent starts working | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| # JavaScript/TypeScript setup | |
| - name: Setup Node.js | |
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version: "26" | |
| cache: 'npm' | |
| cache-dependency-path: package-lock.json | |
| - name: Install packages | |
| # Wrap with timeout + retry to survive transient registry hiccups. | |
| run: | | |
| set -euo pipefail | |
| for attempt in 1 2 3; do | |
| if timeout 600 npm ci; then | |
| echo "✅ npm ci succeeded on attempt ${attempt}" | |
| exit 0 | |
| fi | |
| echo "⚠️ npm ci failed on attempt ${attempt}; retrying after backoff..." | |
| sleep $((attempt * 15)) | |
| done | |
| echo "❌ npm ci failed after 3 attempts" | |
| exit 1 | |
| # Build the European Parliament MCP Server and link globally so it's available as a local MCP server | |
| - name: Build European Parliament MCP Server | |
| run: | | |
| echo "🔨 Building European Parliament MCP Server..." | |
| npm run build | |
| npm link | |
| echo "✅ MCP Server built and linked as 'european-parliament-mcp-server'" | |
| # Pre-install MCP server packages globally | |
| - name: Install MCP server packages globally | |
| # Resilient retry wrapper protects against transient npm registry outages | |
| # and prevents the well-known "npm install hangs" issue when the registry | |
| # or a mirror is degraded. Each individual install is bounded by `timeout`. | |
| run: | | |
| set -euo pipefail | |
| echo "📦 Installing MCP server packages globally..." | |
| install_with_retry() { | |
| local pkg="$1" | |
| for attempt in 1 2 3; do | |
| if timeout 300 npm install -g --no-audit --no-fund "$pkg"; then | |
| echo "✅ Installed $pkg (attempt ${attempt})" | |
| return 0 | |
| fi | |
| echo "⚠️ Install of $pkg failed on attempt ${attempt}; retrying..." | |
| sleep $((attempt * 10)) | |
| done | |
| echo "❌ Failed to install $pkg after 3 attempts" | |
| return 1 | |
| } | |
| # Install Node.js MCP servers that exist on npm | |
| install_with_retry "@modelcontextprotocol/server-filesystem@${MCP_SERVER_FILESYSTEM_VERSION}" | |
| install_with_retry "@modelcontextprotocol/server-memory@${MCP_SERVER_MEMORY_VERSION}" | |
| install_with_retry "@modelcontextprotocol/server-sequential-thinking@${MCP_SERVER_SEQUENTIAL_THINKING_VERSION}" | |
| # Install @playwright/mcp for browser automation. | |
| # NOTE: this only installs the MCP wrapper; the Playwright browser | |
| # binaries themselves are downloaded lazily on first use. | |
| install_with_retry "@playwright/mcp@${PLAYWRIGHT_MCP_VERSION}" | |
| echo "✅ Node.js MCP server packages installed globally" | |
| # Verify all MCP server installations | |
| - name: Verify MCP server installations | |
| run: | | |
| echo "🔍 Verifying MCP server installations..." | |
| echo "=== European Parliament MCP Server ===" | |
| european-parliament-mcp-server --version | |
| echo "✅ european-parliament-mcp-server verified" | |
| echo "" | |
| echo "=== Node.js MCP Servers ===" | |
| echo "Checking mcp-server-filesystem..." | |
| if command -v mcp-server-filesystem >/dev/null 2>&1; then | |
| echo "✅ mcp-server-filesystem found" | |
| else | |
| echo "❌ mcp-server-filesystem NOT found" | |
| exit 1 | |
| fi | |
| echo "Checking mcp-server-memory..." | |
| if command -v mcp-server-memory >/dev/null 2>&1; then | |
| echo "✅ mcp-server-memory found" | |
| else | |
| echo "❌ mcp-server-memory NOT found" | |
| exit 1 | |
| fi | |
| echo "Checking mcp-server-sequential-thinking..." | |
| if command -v mcp-server-sequential-thinking >/dev/null 2>&1; then | |
| echo "✅ mcp-server-sequential-thinking found" | |
| else | |
| echo "❌ mcp-server-sequential-thinking NOT found" | |
| exit 1 | |
| fi | |
| echo "Checking playwright-mcp..." | |
| if command -v playwright-mcp >/dev/null 2>&1; then | |
| echo "✅ playwright-mcp found" | |
| else | |
| echo "❌ playwright-mcp NOT found" | |
| exit 1 | |
| fi | |
| echo "" | |
| echo "=== HTTP MCP Servers ===" | |
| echo "📍 GitHub MCP Server: Using HTTP endpoint (https://api.githubcopilot.com/mcp/insiders)" | |
| echo "✅ MCP server verification complete" |