diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bbb9a6a24..47490d8dc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,13 +11,14 @@ on: - cron: "0 2 * * 1-5" # run on weekdays at 2:00am UTC jobs: - run: + test-linux: + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-10.15] + os: [ubuntu-latest] python_version: ['3.7', '3.8', '3.9', '3.10'] steps: @@ -59,6 +60,51 @@ jobs: run: | python -m flake8 voila tests setup.py + + test-osx: + + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + os: [macos-10.15] + python_version: ['3.7', '3.8', '3.9', '3.10'] + + steps: + - uses: actions/checkout@v2 + + - name: Setup mamba + uses: conda-incubator/setup-miniconda@v2 + with: + mamba-version: "*" + channels: conda-forge + + - name: Create the conda environment + shell: bash -l {0} + run: mamba install -q python=${{ matrix.python_version }} pip jupyterlab_pygments==0.1.0 pytest-cov pytest-rerunfailures nodejs yarn flake8 ipywidgets matplotlib xeus-cling openssl=1.1.1l "traitlets>=5.0.3,<6" + + - name: Install dependencies + shell: bash -l {0} + run: | + whereis python + python --version + yarn install --network-timeout 100000 + python -m pip install ".[test]" + (cd tests/test_template; pip install .) + (cd tests/skip_template; pip install .) + + - name: Run tests + shell: bash -l {0} + run: | + py.test tests/ --async-test-timeout=240 --reruns 2 --reruns-delay 1 + voila --help # Making sure we can run `voila --help` + # tests if voila sends a 'heartbeat' to avoid proxies from closing an apparently stale connection + # Note that wget is the only easily available software that has a read-timeout + voila tests/notebooks/sleep10seconds.ipynb --port=8878 --VoilaConfiguration.http_keep_alive_timeout=2 & + sleep 2 + wget --read-timeout=5 --tries=1 http://localhost:8878 + test-win: runs-on: ${{ matrix.os }}