Skip to content

Run streamlit-folium tests as part of our CI #2117

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Apr 6, 2025
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions .github/workflows/test_streamlit_folium.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Run Streamlit Folium Tests

on:
pull_request:
push:
branches:
- main

jobs:
run:
runs-on: ubuntu-latest

steps:
- name: Checkout Folium
uses: actions/checkout@v4

- name: Setup Micromamba env
uses: mamba-org/setup-micromamba@v2
with:
environment-name: TEST
create-args: >-
python=3
--file requirements.txt

- name: Checkout Streamlit Folium
uses: actions/checkout@v4
with:
repository: randyzwitch/streamlit-folium
ref: master
path: streamlit_folium # Checkout into a subdirectory

- name: Install streamlit_folium dev dependencies
run: |
pip install -r streamlit_folium/tests/requirements.txt

- name: Install folium from source
shell: bash -l {0}
run: |
python -m pip install -e . --no-deps --force-reinstall

- name: Install playwright dependencies
run: |
playwright install --with-deps

- name: Install annotate-failures-plugin
run: pip install pytest-github-actions-annotate-failures

- name: Test with pytest and retry flaky tests up to 3 times
run: |
cd streamlit_folium
pip install streamlit-folium
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This installs the latest release from Pypi. While the tests we run are 'local' and from their main branch. Maybe that can lead to issues if their master branch has new tests that don't work on the latest release. Maybe it's safer to install the local version with pip install -e?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something else is I would put installing the package in its own step, now it's together with actually running the tests.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make a difference? I don't know much about best practices for the github CI/CD.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This installs the latest release from Pypi. While the tests we run are 'local' and from their main branch. Maybe that can lead to issues if their master branch has new tests that don't work on the latest release. Maybe it's safer to install the local version with pip install -e?

Yes good catch.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it make a difference? I don't know much about best practices for the github CI/CD

As far as I know it doesn't make a functional difference, just makes it easier to read and follow.

pytest tests/test_frontend.py --browser chromium -s --reruns 3 --junit-xml=test-results.xml
Loading