Skip to content

Commit 519adf9

Browse files
committed
Run smallpt.ipynb in ci and test output for Safari, Chrome and Firefox
1 parent bfce3a6 commit 519adf9

File tree

2 files changed

+41
-8
lines changed

2 files changed

+41
-8
lines changed

.github/workflows/main.yml

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -316,12 +316,37 @@ jobs:
316316
fi
317317
timeout-minutes: 4
318318

319-
- name: Jupyter Lite integration
319+
- name: Jupyter Lite integration test
320320
shell: bash -l {0}
321321
run: |
322322
micromamba create -n xeus-lite-host jupyterlite-core=0.6 jupyterlite-xeus -c conda-forge
323323
micromamba activate xeus-lite-host
324-
jupyter lite build --XeusAddon.prefix=${{ env.PREFIX }}
324+
if [[ "${{ matrix.os }}" == "macos"* ]]; then
325+
brew install coreutils
326+
export PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
327+
fi
328+
timeout 600 jupyter lite serve --settings-overrides=overrides.json --XeusAddon.prefix=${{ env.PREFIX }} \
329+
--XeusAddon.mounts="${{ env.PREFIX }}/share/xeus-cpp/tagfiles:/share/xeus-cpp/tagfiles" \
330+
--XeusAddon.mounts="${{ env.PREFIX }}/etc/xeus-cpp/tags.d:/etc/xeus-cpp/tags.d" \
331+
--contents README.md \
332+
--contents notebooks/xeus-cpp-lite-demo.ipynb \
333+
--contents notebooks/smallpt.ipynb \
334+
--contents notebooks/images/marie.png \
335+
--contents notebooks/audio/audio.wav &
336+
python -m pip install nbdime
337+
python -m pip install selenium
338+
python scripts/automated-notebook-run-script.py --driver chrome
339+
nbdiff notebooks/smallpt.ipynb $HOME/Downloads/smallpt.ipynb
340+
rm $HOME/Downloads/smallpt.ipynb
341+
python scripts/automated-notebook-run-script.py --driver firefox
342+
nbdiff notebooks/smallpt.ipynb $HOME/Downloads/smallpt.ipynb
343+
rm $HOME/Downloads/smallpt.ipynb
344+
if [[ "${{ matrix.os }}" == "macos"* ]]; then
345+
python scripts/automated-notebook-run-script.py --driver safari
346+
nbdiff notebooks/smallpt.ipynb $HOME/Downloads/smallpt.ipynb
347+
rm $HOME/Downloads/smallpt.ipynb
348+
fi
349+
timeout-minutes: 10
325350

326351
- name: Setup tmate session
327352
if: ${{ failure() && runner.debug }}

scripts/automated-notebook-run-script.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import argparse
22
from selenium import webdriver
3+
from selenium.webdriver.chrome.options import Options as ChromeOptions
4+
from selenium.webdriver.firefox.options import Options as FirefoxOptions
35
from selenium.webdriver.support.ui import WebDriverWait
46
from selenium.webdriver.support import expected_conditions as EC
57
from selenium.webdriver.common.action_chains import ActionChains
@@ -24,10 +26,15 @@ def main():
2426
# This will start the right driver depending on what
2527
# driver option is chosen
2628
if args.driver == "chrome":
27-
driver = webdriver.Chrome()
29+
options = ChromeOptions()
30+
options.add_argument("--headless")
31+
options.add_argument("--no-sandbox")
32+
driver = webdriver.Chrome(options=options)
2833

2934
elif args.driver == "firefox":
30-
driver = webdriver.Firefox()
35+
options = FirefoxOptions()
36+
options.add_argument("--headless")
37+
driver = webdriver.Firefox(options=options)
3138

3239
elif args.driver == "safari":
3340
driver = webdriver.Safari()
@@ -63,7 +70,7 @@ def main():
6370
)
6471
)
6572
actions.move_to_element(run_all_menu).click().perform()
66-
time.sleep(100)
73+
time.sleep(200)
6774

6875
elif args.driver == "firefox":
6976
print("Opening Run Menu")
@@ -79,7 +86,7 @@ def main():
7986
)
8087
)
8188
actions.move_to_element(run_all_menu).click().perform()
82-
time.sleep(100)
89+
time.sleep(200)
8390

8491
elif args.driver == "safari":
8592
print("Running all cells using Shift+Enter...")
@@ -102,7 +109,7 @@ def main():
102109
notebook_area.send_keys(Keys.SHIFT, Keys.ENTER)
103110
time.sleep(0.5)
104111

105-
time.sleep(145)
112+
time.sleep(290)
106113

107114
if args.driver == "chrome" or args.driver == "firefox":
108115
print("Saving notebook")
@@ -163,6 +170,7 @@ def main():
163170

164171
download_button = driver.execute_script(search_script)
165172

173+
time.sleep(4)
166174
driver.execute_script(
167175
"""
168176
const el = arguments[0];
@@ -182,7 +190,7 @@ def main():
182190
""",
183191
download_button,
184192
)
185-
time.sleep(2)
193+
time.sleep(4)
186194

187195
# Close browser
188196
driver.quit()

0 commit comments

Comments
 (0)