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