diff --git a/.github/workflows/test_streamlit_folium.yml b/.github/workflows/test_streamlit_folium.yml new file mode 100644 index 0000000000..59a4f88d61 --- /dev/null +++ b/.github/workflows/test_streamlit_folium.yml @@ -0,0 +1,74 @@ +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: Build streamlit_folium javascript + shell: bash -l {0} + run: | + cd streamlit_folium/streamlit_folium/frontend/ + npm install + npm run build + + - name: Install streamlit-folium + shell: bash -l {0} + run: | + cd streamlit_folium + pip install -e . + + - name: Install streamlit_folium dev dependencies + shell: bash -l {0} + run: | + pip install -r streamlit_folium/tests/requirements.txt + + - name: Install playwright dependencies + shell: bash -l {0} + run: | + playwright install --with-deps + + - name: Install annotate-failures-plugin + run: pip install pytest-github-actions-annotate-failures + + - name: Install folium from source + shell: bash -l {0} + run: | + python -m pip install -e . --no-deps --force-reinstall + + - name: Test with pytest and retry flaky tests up to 3 times + shell: bash -l {0} + run: | + cd streamlit_folium + pytest tests/test_frontend.py --browser chromium -s --reruns 3 --junit-xml=test-results.xml + + - name: Surface failing tests + if: always() + uses: pmeier/pytest-results-action@main + with: + path: streamlit_folium/test-results.xml + fail-on-empty: false