feat: remove plenary.nvim dependency
#122
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: 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/.*"]' |