name: Build on: push: branches: main pull_request: branches: '*' jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Base Setup uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 - name: Install dependencies run: python -m pip install -U jupyterlab~=3.1 check-manifest - name: Lint the extension run: | set -eux jlpm jlpm run lint:check - name: Test the extension run: | set -eux jlpm run test - name: Build the extension run: | set -eux python -m pip install .[test] jupyter labextension list jupyter labextension list 2>&1 | grep -ie "jupyterlab-minio-browser .*OK" python -m jupyterlab.browser_check - name: Package the extension run: | set -eux check-manifest -v pip install build python -m build pip uninstall -y "jupyterlab_minio_browser " jupyterlab - name: Upload extension packages uses: actions/upload-artifact@v2 with: name: extension-artifacts path: dist/jupyterlab_minio_browser * if-no-files-found: error 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.9' architecture: 'x64' - uses: actions/download-artifact@v2 with: name: extension-artifacts - 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 "jupyterlab~=3.1" jupyterlab_minio_browser *.whl jupyter labextension list jupyter labextension list 2>&1 | grep -ie "jupyterlab-minio-browser .*OK" python -m jupyterlab.browser_check --no-chrome-test integration-tests: name: Integration tests needs: build runs-on: ubuntu-latest env: PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/pw-browsers steps: - name: Checkout uses: actions/checkout@v2 - name: Base Setup uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 - name: Download extension package uses: actions/download-artifact@v2 with: name: extension-artifacts - name: Install the extension run: | set -eux python -m pip install "jupyterlab~=3.1" jupyterlab_minio_browser *.whl - name: Install dependencies working-directory: ui-tests env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 run: jlpm install - name: Set up browser cache uses: actions/cache@v2 with: path: | ${{ github.workspace }}/pw-browsers key: ${{ runner.os }}-${{ hashFiles('ui-tests/yarn.lock') }} - name: Install browser run: jlpm playwright install chromium working-directory: ui-tests - name: Execute integration tests working-directory: ui-tests run: | jlpm playwright test - name: Upload Playwright Test report if: always() uses: actions/upload-artifact@v2 with: name: jupyterlab_minio_browser -playwright-tests path: | ui-tests/test-results ui-tests/playwright-report