You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.6 KiB
YAML
101 lines
2.6 KiB
YAML
2 years ago
|
name: Build
|
||
|
|
||
|
on:
|
||
|
push:
|
||
|
branches: main
|
||
|
pull_request:
|
||
|
branches: '*'
|
||
|
|
||
|
jobs:
|
||
|
build:
|
||
|
runs-on: ubuntu-latest
|
||
|
steps:
|
||
|
- name: Checkout
|
||
|
uses: actions/checkout@v2
|
||
|
- name: Install node
|
||
|
uses: actions/setup-node@v1
|
||
|
with:
|
||
|
node-version: '14.x'
|
||
|
- name: Install Python
|
||
|
uses: actions/setup-python@v2
|
||
|
with:
|
||
|
python-version: '3.8'
|
||
|
architecture: 'x64'
|
||
|
|
||
|
|
||
|
- name: Setup pip cache
|
||
|
uses: actions/cache@v2
|
||
|
with:
|
||
|
path: ~/.cache/pip
|
||
|
key: pip-3.8-${{ hashFiles('package.json') }}
|
||
|
restore-keys: |
|
||
|
pip-3.8-
|
||
|
pip-
|
||
|
|
||
|
- name: Get yarn cache directory path
|
||
|
id: yarn-cache-dir-path
|
||
|
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||
|
- name: Setup yarn cache
|
||
|
uses: actions/cache@v2
|
||
|
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
|
||
|
with:
|
||
|
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||
|
key: yarn-${{ hashFiles('**/yarn.lock') }}
|
||
|
restore-keys: |
|
||
|
yarn-
|
||
|
|
||
|
- name: Install dependencies
|
||
|
run: python -m pip install -U jupyterlab~=3.1 check-manifest
|
||
|
- name: Build the extension
|
||
|
run: |
|
||
|
set -eux
|
||
|
jlpm
|
||
|
jlpm run eslint:check
|
||
|
python -m pip install .
|
||
|
|
||
|
jupyter labextension list 2>&1 | grep -ie "@jupyterlite/echo-kernel.*OK"
|
||
|
|
||
|
# TODO: add JupyterLite browser check
|
||
|
# python -m jupyterlab.browser_check
|
||
|
|
||
|
check-manifest -v
|
||
|
|
||
|
pip install build
|
||
|
python -m build --sdist
|
||
|
cp dist/*.tar.gz myextension.tar.gz
|
||
|
pip uninstall -y myextension jupyterlab
|
||
|
rm -rf myextension
|
||
|
|
||
|
- uses: actions/upload-artifact@v2
|
||
|
with:
|
||
|
name: myextension-sdist
|
||
|
path: myextension.tar.gz
|
||
|
|
||
|
test_isolated:
|
||
|
needs: build
|
||
|
runs-on: ubuntu-latest
|
||
|
|
||
|
steps:
|
||
|
- name: Checkout
|
||
|
uses: actions/checkout@v2
|
||
|
- name: Install Python
|
||
|
uses: actions/setup-python@v2
|
||
|
with:
|
||
|
python-version: '3.8'
|
||
|
architecture: 'x64'
|
||
|
- uses: actions/download-artifact@v2
|
||
|
with:
|
||
|
name: myextension-sdist
|
||
|
- name: Install and Test
|
||
|
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 myextension.tar.gz
|
||
|
pip install jupyterlab
|
||
|
jupyter labextension list 2>&1 | grep -ie "@jupyterlite/echo-kernel.*OK"
|
||
|
|
||
|
# TODO: add JupyterLite browser check
|
||
|
# python -m jupyterlab.browser_check --no-chrome-test
|