Fix match statement issue #8727
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: 'Validation' | |
| env: | |
| NODE_VERSION: '20' # Shipped with VS Code. | |
| PYTHON_VERSION: 3.11 | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| typecheck: | |
| if: github.repository == 'microsoft/pyright' | |
| runs-on: ubuntu-latest | |
| name: Typecheck | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'npm' | |
| cache-dependency-path: '**/package-lock.json' | |
| - uses: ./.github/actions/npm-cache-dir | |
| - run: npm run install:all | |
| - run: npx lerna exec --stream --no-bail -- tsc --noEmit | |
| style: | |
| if: github.repository == 'microsoft/pyright' | |
| runs-on: ubuntu-latest | |
| name: Style | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'npm' | |
| cache-dependency-path: '**/package-lock.json' | |
| - uses: ./.github/actions/npm-cache-dir | |
| - run: npm run install:all | |
| - name: Check diff after npm install | |
| run: git diff --exit-code --name-only | |
| - run: npm run check | |
| test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, windows-latest, ubuntu-latest] | |
| name: Test ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| needs: typecheck | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'npm' | |
| cache-dependency-path: '**/package-lock.json' | |
| - uses: ./.github/actions/npm-cache-dir | |
| - run: npm run install:all | |
| - name: npm test (pyright-internal) | |
| run: npm test | |
| working-directory: packages/pyright-internal | |
| # Install python so we can create a VENV for tests | |
| - name: Use Python ${{env.PYTHON_VERSION}} | |
| uses: actions/setup-python@v5 | |
| id: install_python | |
| with: | |
| python-version: ${{env.PYTHON_VERSION}} | |
| - name: Create Venv | |
| run: | | |
| ${{ steps.install_python.outputs.python-path }} -m venv .venv | |
| - name: Activate and install pytest (linux) | |
| if: runner.os != 'Windows' | |
| run: | | |
| source .venv/bin/activate | |
| python -m pip install pytest | |
| python -c "import sys;print('python_venv_path=' + sys.executable)" >> $GITHUB_ENV | |
| - name: Activate and install pytest (windows) | |
| if: runner.os == 'Windows' | |
| run: | | |
| .venv\scripts\activate | |
| python -m pip install pytest | |
| python -c "import sys;print('python_venv_path=' + sys.executable)" | Out-File -FilePath $env:GITHUB_ENV -Append | |
| - name: Echo python_venv_path | |
| run: | | |
| echo python_venv_path=${{env.python_venv_path}} | |
| - name: Run import tests with venv | |
| env: | |
| CI_IMPORT_TEST_VENVPATH: '../../' | |
| CI_IMPORT_TEST_VENV: '.venv' | |
| run: npm run test:imports | |
| working-directory: packages/pyright-internal | |
| - name: Run import tests with pythonpath | |
| env: | |
| CI_IMPORT_TEST_PYTHONPATH: ${{env.python_venv_path}} | |
| run: npm run test:imports | |
| working-directory: packages/pyright-internal | |
| build: | |
| runs-on: ubuntu-latest | |
| name: Build | |
| needs: typecheck | |
| permissions: | |
| id-token: write | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'npm' | |
| cache-dependency-path: '**/package-lock.json' | |
| - uses: ./.github/actions/choose-npm-install | |
| - run: npm publish --dry-run | |
| working-directory: packages/pyright | |
| - run: npm run package | |
| working-directory: packages/vscode-pyright | |
| required: | |
| runs-on: ubuntu-latest | |
| name: Required | |
| needs: | |
| - typecheck | |
| - style | |
| - test | |
| - build | |
| steps: | |
| - run: echo All required jobs succeeded. |