name: E2E Tests on: push: branches: [main] pull_request: branches: [main] jobs: e2e-tests: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] node-version: [18, 20, 22] steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "npm" - name: Install dependencies run: npm ci - name: Setup package managers (Ubuntu/macOS) if: matrix.os != 'windows-latest' run: | # Install yarn npm install -g yarn # Install pnpm npm install -g pnpm # Verify installations npm --version yarn --version pnpm --version - name: Setup package managers (Windows) if: matrix.os == 'windows-latest' run: | # Install yarn npm install -g yarn # Install pnpm npm install -g pnpm # Verify installations npm --version yarn --version pnpm --version shell: pwsh - name: Install safe-chain globally run: npm install -g . - name: Run linting run: npm run lint - name: Run E2E tests run: npm run test:e2e