Skip to content

Revert VS Code engine to 1.106, hold task proposed api (#1260) #2016

Revert VS Code engine to 1.106, hold task proposed api (#1260)

Revert VS Code engine to 1.106, hold task proposed api (#1260) #2016

Workflow file for this run

name: PR/CI Check
on:
pull_request:
push:
branches-ignore:
- main
- release*
env:
NODE_VERSION: '22.21.1'
jobs:
build-vsix:
name: Create VSIX
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build VSIX
uses: ./.github/actions/build-vsix
with:
node_version: ${{ env.NODE_VERSION }}
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install Dependencies
run: npm ci
- name: Run Linter
run: npm run lint
ts-unit-tests:
name: TypeScript Unit Tests
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install Dependencies
run: npm ci
- name: Compile Tests
run: npm run pretest
- name: Localization
run: npx @vscode/l10n-dev@latest export ./src
- name: Run Tests
run: npm run unittest
smoke-tests:
name: Smoke Tests
runs-on: ${{ matrix.os }}
needs: [build-vsix]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.9', '3.12', '3.14']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout Python Environment Tools
uses: actions/checkout@v4
with:
repository: 'microsoft/python-environment-tools'
path: 'python-env-tools-src'
sparse-checkout: |
crates
Cargo.toml
Cargo.lock
sparse-checkout-cone-mode: false
- name: Install Rust Toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache Rust build
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
python-env-tools-src/target
key: ${{ runner.os }}-cargo-pet-${{ hashFiles('python-env-tools-src/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-pet-
- name: Build Python Environment Tools
run: cargo build --release --package pet
working-directory: python-env-tools-src
- name: Copy pet binary (Unix)
if: runner.os != 'Windows'
run: |
mkdir -p python-env-tools/bin
cp python-env-tools-src/target/release/pet python-env-tools/bin/
chmod +x python-env-tools/bin/pet
- name: Copy pet binary (Windows)
if: runner.os == 'Windows'
run: |
mkdir -p python-env-tools/bin
cp python-env-tools-src/target/release/pet.exe python-env-tools/bin/
shell: bash
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: npm ci
- name: Compile Extension
run: npm run compile
- name: Compile Tests
run: npm run compile-tests
- name: Configure Test Settings
run: |
mkdir -p .vscode-test/user-data/User
echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
shell: bash
- name: Run Smoke Tests (Linux)
if: runner.os == 'Linux'
uses: GabrielBB/xvfb-action@v1
with:
run: npm run smoke-test
- name: Run Smoke Tests (non-Linux)
if: runner.os != 'Linux'
run: npm run smoke-test
e2e-tests:
name: E2E Tests
runs-on: ${{ matrix.os }}
needs: [smoke-tests]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.9', '3.12', '3.14']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout Python Environment Tools
uses: actions/checkout@v4
with:
repository: 'microsoft/python-environment-tools'
path: 'python-env-tools-src'
sparse-checkout: |
crates
Cargo.toml
Cargo.lock
sparse-checkout-cone-mode: false
- name: Install Rust Toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache Rust build
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
python-env-tools-src/target
key: ${{ runner.os }}-cargo-pet-${{ hashFiles('python-env-tools-src/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-pet-
- name: Build Python Environment Tools
run: cargo build --release --package pet
working-directory: python-env-tools-src
- name: Copy pet binary (Unix)
if: runner.os != 'Windows'
run: |
mkdir -p python-env-tools/bin
cp python-env-tools-src/target/release/pet python-env-tools/bin/
chmod +x python-env-tools/bin/pet
- name: Copy pet binary (Windows)
if: runner.os == 'Windows'
run: |
mkdir -p python-env-tools/bin
cp python-env-tools-src/target/release/pet.exe python-env-tools/bin/
shell: bash
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: npm ci
- name: Compile Extension
run: npm run compile
- name: Compile Tests
run: npm run compile-tests
- name: Configure Test Settings
run: |
mkdir -p .vscode-test/user-data/User
echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
shell: bash
- name: Run E2E Tests (Linux)
if: runner.os == 'Linux'
uses: GabrielBB/xvfb-action@v1
with:
run: npm run e2e-test
- name: Run E2E Tests (non-Linux)
if: runner.os != 'Linux'
run: npm run e2e-test
integration-tests:
name: Integration Tests
runs-on: ${{ matrix.os }}
needs: [smoke-tests]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.9', '3.12', '3.14']
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout Python Environment Tools
uses: actions/checkout@v4
with:
repository: 'microsoft/python-environment-tools'
path: 'python-env-tools-src'
sparse-checkout: |
crates
Cargo.toml
Cargo.lock
sparse-checkout-cone-mode: false
- name: Install Rust Toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache Rust build
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
python-env-tools-src/target
key: ${{ runner.os }}-cargo-pet-${{ hashFiles('python-env-tools-src/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-pet-
- name: Build Python Environment Tools
run: cargo build --release --package pet
working-directory: python-env-tools-src
- name: Copy pet binary (Unix)
if: runner.os != 'Windows'
run: |
mkdir -p python-env-tools/bin
cp python-env-tools-src/target/release/pet python-env-tools/bin/
chmod +x python-env-tools/bin/pet
- name: Copy pet binary (Windows)
if: runner.os == 'Windows'
run: |
mkdir -p python-env-tools/bin
cp python-env-tools-src/target/release/pet.exe python-env-tools/bin/
shell: bash
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: npm ci
- name: Compile Extension
run: npm run compile
- name: Compile Tests
run: npm run compile-tests
- name: Configure Test Settings
run: |
mkdir -p .vscode-test/user-data/User
echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
shell: bash
- name: Run Integration Tests (Linux)
if: runner.os == 'Linux'
uses: GabrielBB/xvfb-action@v1
with:
run: npm run integration-test
- name: Run Integration Tests (non-Linux)
if: runner.os != 'Linux'
run: npm run integration-test