Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
only buiild vsix
Browse files Browse the repository at this point in the history
Kartik Raj committed Sep 3, 2021
1 parent 30e237d commit b601e59
Showing 1 changed file with 0 additions and 495 deletions.
495 changes: 0 additions & 495 deletions .github/workflows/pr-check.yml
Original file line number Diff line number Diff line change
@@ -33,498 +33,3 @@ jobs:
node_version: ${{ env.NODE_VERSION}}
vsix_name: ${{ env.VSIX_NAME }}
artifact_name: ${{ env.ARTIFACT_NAME_VSIX }}

lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2.3.4

- name: Lint
uses: ./.github/actions/lint
with:
node_version: ${{ env.NODE_VERSION }}

### Non-smoke tests
tests:
name: Tests
# The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: ${{env.special-working-directory}}
strategy:
fail-fast: false
matrix:
# We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
# macOS runners are expensive, and we assume that Ubuntu is enough to cover the Unix case.
os: [ubuntu-latest, windows-latest]
# Run the tests on the oldest and most recent versions of Python.
python: ['2.7', '3.9']
test-suite: [ts-unit, python-unit, venv, single-workspace, debugger, functional]
exclude:
# For fast PR turn-around, skip 2.7 under Windows.
- os: windows-latest
python: '2.7'
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
with:
path: ${{env.special-working-directory-relative}}

- name: Install Node
uses: actions/setup-node@v2.4.0
with:
node-version: ${{env.NODE_VERSION}}

- name: Install dependencies (npm ci)
run: npm ci

- name: Compile
run: npx gulp prePublishNonBundle

- name: Use Python ${{matrix.python}}
uses: actions/setup-python@v2
with:
python-version: ${{matrix.python}}

- name: Install Node
uses: actions/setup-node@v2.4.0
with:
node-version: ${{env.NODE_VERSION}}

- name: Install Python requirements
run: |
python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade -r requirements.txt --no-user
# We need to have debugpy so that tests relying on it keep passing, but we don't need install_debugpy's logic in the test phase.
python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade --pre debugpy
- name: Install test requirements
run: python -m pip install --upgrade -r build/test-requirements.txt

- name: Install debugpy wheels (python 3.8)
run: |
python -m pip install wheel
python -m pip --disable-pip-version-check install -r build/debugger-install-requirements.txt
python ./pythonFiles/install_debugpy.py
shell: bash
if: matrix.test-suite == 'debugger' && matrix.python == 3.8

- name: Install debugpy (python 2.7)
run: |
python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade --pre debugpy
shell: bash
if: matrix.test-suite == 'debugger' && matrix.python == 2.7

- name: Install functional test requirements
run: python -m pip install --upgrade -r ./build/functional-test-requirements.txt
if: matrix.test-suite == 'functional'

- name: Prepare pipenv for venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
shell: pwsh
if: matrix.test-suite == 'venv'
run: |
python -m pip install pipenv
python -m pipenv run python ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} pipenvPath
- name: Prepare poetry for venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
shell: pwsh
if: matrix.test-suite == 'venv'
run: |
python -m pip install poetry
Move-Item -Path ".\build\ci\pyproject.toml" -Destination .
poetry env use python
- name: Prepare virtualenv for venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
shell: pwsh
if: matrix.test-suite == 'venv'
run: |
python -m pip install virtualenv
python -m virtualenv .virtualenv/
if ('${{matrix.os}}' -match 'windows-latest') {
& ".virtualenv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} virtualEnvPath
} else {
& ".virtualenv/bin/python" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} virtualEnvPath
}
- name: Prepare venv for venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
shell: pwsh
if: matrix.test-suite == 'venv' && startsWith(matrix.python, 3.)
run: |
python -m venv .venv
if ('${{matrix.os}}' -match 'windows-latest') {
& ".venv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} venvPath
} else {
& ".venv/bin/python" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} venvPath
}
- name: Prepare conda for venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
shell: pwsh
if: matrix.test-suite == 'venv'
run: |
# 1. For `terminalActivation.testvirtualenvs.test.ts`
if ('${{matrix.os}}' -match 'windows-latest') {
$condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath python.exe
$condaExecPath = Join-Path -Path $Env:CONDA -ChildPath Scripts | Join-Path -ChildPath conda
} else{
$condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath python
$condaExecPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath conda
}
& $condaPythonPath ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} condaExecPath $condaExecPath
& $condaPythonPath ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} condaPath
& $condaExecPath init --all
# 2. For `interpreterLocatorService.testvirtualenvs.ts`
& $condaExecPath create -n "test_env1" -y python
& $condaExecPath create -p "./test_env2" -y python
& $condaExecPath create -p "~/test_env3" -y python
- name: Set CI_PYTHON_PATH and CI_DISABLE_AUTO_SELECTION
run: |
echo "CI_PYTHON_PATH=python" >> $GITHUB_ENV
echo "CI_DISABLE_AUTO_SELECTION=1" >> $GITHUB_ENV
shell: bash
if: matrix.test-suite != 'ts-unit'

# Run TypeScript unit tests only for Python 3.X.
- name: Run TypeScript unit tests
run: npm run test:unittests
if: matrix.test-suite == 'ts-unit' && startsWith(matrix.python, 3.)

# Run the Python tests in our codebase.
- name: Run Python unit tests
run: |
python pythonFiles/tests/run_all.py
if: matrix.test-suite == 'python-unit'

# The virtual environment based tests use the `testSingleWorkspace` set of tests
# with the environment variable `TEST_FILES_SUFFIX` set to `testvirtualenvs`,
# which is set in the "Prepare environment for venv tests" step.
# We also use a third-party GitHub Action to install xvfb on Linux,
# run tests and then clean up the process once the tests ran.
# See https://github.com/GabrielBB/xvfb-action
- name: Run venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
CI_PYTHON_VERSION: ${{matrix.python}}
uses: GabrielBB/xvfb-action@v1.5
with:
run: npm run testSingleWorkspace
working-directory: ${{env.special-working-directory}}
if: matrix.test-suite == 'venv' && matrix.os == 'ubuntu-latest'

- name: Run single-workspace tests
env:
CI_PYTHON_VERSION: ${{matrix.python}}
uses: GabrielBB/xvfb-action@v1.5
with:
run: npm run testSingleWorkspace
working-directory: ${{env.special-working-directory}}
if: matrix.test-suite == 'single-workspace'

- name: Run multi-workspace tests
env:
CI_PYTHON_VERSION: ${{matrix.python}}
uses: GabrielBB/xvfb-action@v1.5
with:
run: npm run testMultiWorkspace
working-directory: ${{env.special-working-directory}}
if: matrix.test-suite == 'multi-workspace'

- name: Run debugger tests
env:
CI_PYTHON_VERSION: ${{matrix.python}}
uses: GabrielBB/xvfb-action@v1.5
with:
run: npm run testDebugger
working-directory: ${{env.special-working-directory}}
if: matrix.test-suite == 'debugger'

# Run TypeScript functional tests
- name: Run TypeScript functional tests
run: npm run test:functional
if: matrix.test-suite == 'functional'

smoke-tests:
name: Smoke tests
# The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
runs-on: ${{ matrix.os }}
needs: [build-vsix]
strategy:
fail-fast: false
matrix:
# We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
# macOS runners are expensive, and we assume that Ubuntu is enough to cover the UNIX case.
os: [ubuntu-latest, windows-latest]
steps:
# Need the source to have the tests available.
- name: Checkout
uses: actions/checkout@v2

- name: Smoke tests
uses: ./.github/actions/smoke-tests
with:
node_version: ${{ env.NODE_VERSION }}
artifact_name: ${{ env.ARTIFACT_NAME_VSIX }}

# insider-tests:
# name: Insider tests
# # The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
# runs-on: ${{ matrix.os }}
# strategy:
# fail-fast: false
# matrix:
# # We're not running CI on macOS for now because it's one less matrix entry to lower the number of runners used,
# # macOS runners are expensive, and we assume that Ubuntu is enough to cover the UNIX case.
# os: [ubuntu-latest]
# python: [3.8]
# steps:
# # Need the source to have the tests available.
# - name: Checkout
# uses: actions/checkout@v2.3.4

# - name: Install Node
# uses: actions/setup-node@v2.4.0
# with:
# node-version: ${{env.NODE_VERSION}}

# - name: Use Python ${{matrix.python}}
# uses: actions/setup-python@v2
# with:
# python-version: ${{matrix.python}}

# - name: Install dependencies (npm ci)
# run: npm ci --prefer-offline

# - name: pip install system test requirements
# run: |
# python -m pip install --upgrade -r build/test-requirements.txt
# python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade -r requirements.txt
# python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade --pre debugpy
# shell: bash

# - name: pip install smoke test requirements
# run: |
# python -m pip install --upgrade -r build/smoke-test-requirements.txt
# shell: bash

# # Compile the test files.
# - name: Prepare for insiders tests
# run: npm run prePublish
# shell: bash

# - name: Set CI_PYTHON_PATH and CI_DISABLE_AUTO_SELECTION
# run: |
# echo "CI_PYTHON_PATH=python" >> $GITHUB_ENV
# echo "CI_DISABLE_AUTO_SELECTION=1" >> $GITHUB_ENV
# shell: bash

# - name: Run insider tests
# env:
# DISPLAY: 10
# INSTALL_JUPYTER_EXTENSION: true
# INSTALL_PYLANCE_EXTENSION: true
# VSC_PYTHON_CI_TEST_VSC_CHANNEL: insiders
# TEST_FILES_SUFFIX: insiders.test
# CODE_TESTS_WORKSPACE: ./src/testMultiRootWkspc/smokeTests
# uses: GabrielBB/xvfb-action@v1.5
# with:
# run: node --no-force-async-hooks-checks ./out/test/standardTest.js

### Coverage run
coverage:
name: Coverage
# The value of runs-on is the OS of the current job (specified in the strategy matrix below) instead of being hardcoded.
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# Only run coverage on linux for PRs
os: [ubuntu-latest]

steps:
- name: Checkout
uses: actions/checkout@v2.3.4

- name: Install Node
uses: actions/setup-node@v2.4.0
with:
node-version: ${{env.NODE_VERSION}}

- name: Install dependencies (npm ci)
run: npm ci

- name: Compile
run: npx gulp prePublishNonBundle

- name: Use Python ${{env.PYTHON_VERSION}}
uses: actions/setup-python@v2
with:
python-version: ${{env.PYTHON_VERSION}}

- name: Install Node
uses: actions/setup-node@v2.4.0
with:
node-version: ${{env.NODE_VERSION}}

- name: Install Python requirements
run: |
python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade -r requirements.txt --no-user
# We need to have debugpy so that tests relying on it keep passing, but we don't need install_debugpy's logic in the test phase.
python -m pip --disable-pip-version-check install -t ./pythonFiles/lib/python --no-cache-dir --implementation py --no-deps --upgrade --pre debugpy
- name: Install test requirements
run: python -m pip install --upgrade -r build/test-requirements.txt

- name: Install functional test requirements
run: python -m pip install --upgrade -r ./build/functional-test-requirements.txt

- name: Prepare pipenv for venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
shell: pwsh
run: |
python -m pip install pipenv
python -m pipenv run python ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} pipenvPath
- name: Prepare poetry for venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
shell: pwsh
run: |
python -m pip install poetry
Move-Item -Path ".\build\ci\pyproject.toml" -Destination .
poetry env use python
- name: Prepare virtualenv for venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
shell: pwsh
run: |
python -m pip install virtualenv
python -m virtualenv .virtualenv/
if ('${{matrix.os}}' -match 'windows-latest') {
& ".virtualenv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} virtualEnvPath
} else {
& ".virtualenv/bin/python" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} virtualEnvPath
}
- name: Prepare venv for venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
shell: pwsh
run: |
python -m venv .venv
if ('${{matrix.os}}' -match 'windows-latest') {
& ".venv/Scripts/python.exe" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} venvPath
} else {
& ".venv/bin/python" ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} venvPath
}
- name: Prepare conda for venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
PYTHON_VIRTUAL_ENVS_LOCATION: './src/tmp/envPaths.json'
shell: pwsh
run: |
# 1. For `terminalActivation.testvirtualenvs.test.ts`
if ('${{matrix.os}}' -match 'windows-latest') {
$condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath python.exe
$condaExecPath = Join-Path -Path $Env:CONDA -ChildPath Scripts | Join-Path -ChildPath conda
} else{
$condaPythonPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath python
$condaExecPath = Join-Path -Path $Env:CONDA -ChildPath bin | Join-Path -ChildPath conda
}
& $condaPythonPath ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} condaExecPath $condaExecPath
& $condaPythonPath ./build/ci/addEnvPath.py ${{env.PYTHON_VIRTUAL_ENVS_LOCATION}} condaPath
& $condaExecPath init --all
# 2. For `interpreterLocatorService.testvirtualenvs.ts`
& $condaExecPath create -n "test_env1" -y python
& $condaExecPath create -p "./test_env2" -y python
& $condaExecPath create -p "~/test_env3" -y python
- name: Run TypeScript unit tests
run: npm run test:unittests:cover

- name: Run Python unit tests
run: |
python pythonFiles/tests/run_all.py
# The virtual environment based tests use the `testSingleWorkspace` set of tests
# with the environment variable `TEST_FILES_SUFFIX` set to `testvirtualenvs`,
# which is set in the "Prepare environment for venv tests" step.
# We also use a third-party GitHub Action to install xvfb on Linux,
# run tests and then clean up the process once the tests ran.
# See https://github.com/GabrielBB/xvfb-action
- name: Run venv tests
env:
TEST_FILES_SUFFIX: testvirtualenvs
CI_PYTHON_VERSION: ${{env.PYTHON_VERSION}}
CI_DISABLE_AUTO_SELECTION: 1
uses: GabrielBB/xvfb-action@v1.5
with:
run: npm run testSingleWorkspace:cover

- name: Run single-workspace tests
env:
CI_PYTHON_VERSION: ${{env.PYTHON_VERSION}}
CI_DISABLE_AUTO_SELECTION: 1
uses: GabrielBB/xvfb-action@v1.5
with:
run: npm run testSingleWorkspace:cover

# Enable these tests when coverage is setup for multiroot workspace tests
# - name: Run multi-workspace tests
# env:
# CI_PYTHON_VERSION: ${{env.PYTHON_VERSION}}
# CI_DISABLE_AUTO_SELECTION: 1
# uses: GabrielBB/xvfb-action@v1.5
# with:
# run: npm run testMultiWorkspace:cover

# Enable these tests when coverage is setup for debugger tests
# - name: Run debugger tests
# env:
# CI_PYTHON_VERSION: ${{env.PYTHON_VERSION}}
# CI_DISABLE_AUTO_SELECTION: 1
# uses: GabrielBB/xvfb-action@v1.5
# with:
# run: npm run testDebugger:cover

# Run TypeScript functional tests
- name: Run TypeScript functional tests
env:
CI_PYTHON_VERSION: ${{env.PYTHON_VERSION}}
CI_DISABLE_AUTO_SELECTION: 1
run: npm run test:functional:cover

- name: Generate coverage reports
run: npm run test:cover:report

- name: Upload HTML report
uses: actions/upload-artifact@v2
with:
name: ${{ runner.os }}-coverage-report-html
path: ./coverage
retention-days: 1

0 comments on commit b601e59

Please sign in to comment.