Skip to content

Address PR review on prerelease parsing and upper bounds #3481

Address PR review on prerelease parsing and upper bounds

Address PR review on prerelease parsing and upper bounds #3481

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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- 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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Checkout Python Environment Tools
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
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@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
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@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
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: Run Smoke Tests (Linux)
if: runner.os == 'Linux'
uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
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.10', '3.12', '3.14']
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Checkout Python Environment Tools
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
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@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
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@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
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: Run E2E Tests (Linux)
if: runner.os == 'Linux'
uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
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]
env:
CONDA_PLUGINS_AUTO_ACCEPT_TOS: 'true'
VSC_PYTHON_PACKAGE_NETWORK_TEST: '1'
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.10', '3.12', '3.14']
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Checkout Python Environment Tools
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
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@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
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@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
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: Set up Conda
uses: conda-incubator/setup-miniconda@8ee1f361103df19b6f8c8655fd3967a8ecb162d5 # v4.0.1
with:
activate-environment: ''
auto-activate: false
- name: Run Integration Tests (Linux)
if: runner.os == 'Linux'
uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
with:
run: npm run integration-test
- name: Run Integration Tests (non-Linux)
if: runner.os != 'Linux'
run: npm run integration-test
integration-tests-multiroot:
name: Integration Tests (Multi-Root)
runs-on: ${{ matrix.os }}
needs: [smoke-tests]
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.10', '3.12', '3.14']
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install Node
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Install Python
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
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: Run Integration Tests Multi-Root (Linux)
if: runner.os == 'Linux'
uses: GabrielBB/xvfb-action@b706e4e27b14669b486812790492dc50ca16b465 # v1.7
with:
run: npm run integration-test-multiroot
- name: Run Integration Tests Multi-Root (non-Linux)
if: runner.os != 'Linux'
run: npm run integration-test-multiroot