Skip to content

Main

Main #60

Workflow file for this run

name: Main
on:
push:
pull_request:
workflow_dispatch:
schedule:
# Run at 2:00 a.m. every weekday (Monday to Friday)
- cron: "0 2 * * 1-5"
jobs:
build:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: "3.x"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install twine wheel jupyter-packaging "jupyterlab<4"
- name: Build
run: |
python setup.py sdist bdist_wheel
- name: Upload builds
uses: actions/upload-artifact@v3
with:
name: ipypopout-dist-${{ github.run_number }}
path: |
./dist
test:
needs: [build]
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
python-version: [3.6, 3.7, 3.8, 3.9, "3.10", "3.11"]
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v3
with:
name: ipypopout-dist-${{ github.run_number }}
# because we only upload 1 file, it's not put in a subdirectory
path: dist
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install
run: pip install dist/*.whl
- name: Import
# do the import in a subdirectory, as after installation, files in de current directory are also imported
run: |
(mkdir test-install; cd test-install; python -c "from ipypopout import PopoutButton")
ui-test:
needs: [build]
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v3
with:
# because we only upload 1 file, it's not put in a subdirectory
path: dist
name: ipypopout-dist-${{ github.run_number }}
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install ipypopout and test deps
run: |
wheel=(dist/*.whl)
pip install ${wheel}[test] "jupyter_server<2"
- name: Install playwright browsers
run: playwright install chromium
- name: Run ui-tests
run: pytest tests/ui/ --video=retain-on-failure --solara-update-snapshots-ci -s
- name: Upload Test artifacts
if: always()
uses: actions/upload-artifact@v2
with:
name: ipypopout-test-results
path: test-results
release:
if: startsWith(github.event.ref, 'refs/tags/v')
needs: [test]
runs-on: ubuntu-20.04
steps:
- uses: actions/download-artifact@v3
with:
# because we only upload 1 file, it's not put in a subdirectory
path: dist
name: ipypopout-dist-${{ github.run_number }}
- name: Install Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install twine wheel
- name: Publish the Python package
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: twine upload --skip-existing dist/*