Skip to content

feat: remove plenary.nvim dependency #122

feat: remove plenary.nvim dependency

feat: remove plenary.nvim dependency #122

Workflow file for this run

name: Continuous Integration
on:
pull_request:
branches:
- "master"
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Setup JupyterLab Maintainer Tools
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
with:
python_version: "3.11"
pnpm_version: "10"
python_package_manager: "uv pip"
- name: Install Python Dependencies
run: python -m pip install -U "jupyterlab>=4.0.0,<5"
- name: Run Lint Checks
run: |
set -eux
pnpm i
pnpm run lint:check
unit_test:
name: Neovim Unit Tests
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
cc: [gcc]
rev: [nightly, stable]
runs-on: ${{ matrix.os }}
env:
CC: ${{ matrix.cc }}
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v3
- name: Install Tree-sitter CLI
run: npm i -g tree-sitter-cli
- name: Setup Neovim
uses: rhysd/action-setup-vim@v1
with:
neovim: true
version: ${{ matrix.rev }}
- name: Run Neovim Tests
run: |
set -eux
make test
build:
name: Build and Package
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Setup JupyterLab Maintainer Tools
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
with:
python_version: "3.11"
pnpm_version: "10"
python_package_manager: "uv pip"
- name: Install Python Dependencies
run: python -m pip install -U "jupyterlab>=4.0.0,<5"
- name: Run Lint Checks
run: |
set -eux
pnpm i
pnpm run lint:check
- name: Run Unit Tests
run: |
set -eux
pnpm run test
- name: Verify Extension Build
run: |
set -eux
python -m pip install .[test]
jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "neopyter.*OK"
# python -m jupyterlab.browser_check
- name: Build Python Distribution
run: |
set -eux
pip install build
python -m build
pip uninstall -y "neopyter" jupyterlab
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: extension-artifacts
path: dist/neopyter*
if-no-files-found: error
test_isolated:
name: Isolated Install Test
needs:
- build
runs-on: ubuntu-latest
steps:
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: "3.9"
architecture: x64
- name: Download Build Artifacts
uses: actions/download-artifact@v4
with:
name: extension-artifacts
- name: Validate Wheel in Isolated Environment
run: |
set -eux
# Remove NodeJS, twice to take care of system and locally installed node versions.
sudo rm -rf $(which node)
sudo rm -rf $(which node)
pip install "jupyterlab>=4.0.0,<5" neopyter*.whl
jupyter labextension list
jupyter labextension list 2>&1 | grep -ie "neopyter.*OK"
python -m jupyterlab.browser_check --no-browser-test
integration-tests:
name: Integration Tests
needs: build
runs-on: ubuntu-latest
env:
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/pw-browsers
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Setup JupyterLab Maintainer Tools
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
with:
python_version: "3.11"
pnpm_version: "10"
python_package_manager: "uv pip"
- name: Download Build Artifacts
uses: actions/download-artifact@v4
with:
name: extension-artifacts
- name: Install Extension Wheel
run: |
set -eux
python -m pip install "jupyterlab>=4.0.0,<5" neopyter*.whl
- name: Install UI Test Dependencies
working-directory: ui-tests
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: 0
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
run: pnpm install
- name: Restore Playwright Browser Cache
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/pw-browsers
key: ${{ runner.os }}-${{ hashFiles('ui-tests/yarn.lock') }}
- name: Install Playwright Chromium
run: pnpm playwright install chromium
working-directory: ui-tests
- name: Run Playwright Tests
working-directory: ui-tests
run: |
pnpm playwright test
- name: Upload Playwright Report
if: always()
uses: actions/upload-artifact@v4
with:
name: neopyter-playwright-tests
path: |
ui-tests/test-results
ui-tests/playwright-report
check_links:
name: Check Links
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Setup JupyterLab Maintainer Tools
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1
with:
python_version: "3.11"
pnpm_version: "10"
python_package_manager: "uv pip"
- name: Run Link Checker
uses: jupyterlab/maintainer-tools/.github/actions/check-links@v1
with:
ignore_links: '["https://github.com/.*"]'