.github/workflows/integration.yml #2793
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Integration testing | |
on: | |
push: | |
branches: | |
- master | |
- fix_ci | |
pull_request: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 6 * * 1,4' # at 06:00 UTC on Monday and Thursday | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: ${{ !(github.ref == 'refs/heads/master') }} | |
env: | |
SOLARA_TELEMETRY_SERVER_USER_ID: "install-test" | |
SOLARA_TELEMETRY_MIXPANEL_TOKEN: adbf863d17cba80db608788e7fce9843 | |
jobs: | |
build: | |
uses: ./.github/workflows/build.yml | |
integration-test: | |
needs: [build] | |
timeout-minutes: 15 | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
# just ubuntu and windows give enough confidence | |
# osx should work fine (and we test that locally often) | |
os: [ubuntu, windows] | |
# just 1 version, it's heavy | |
python-version: [3.8] | |
ipywidgets: ["7.7", "8.0"] | |
include: | |
- ipywidgets: "7.7" | |
voila: "0.3.0" | |
- ipywidgets: "8.0" | |
voila: "0.4.0" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: actions/download-artifact@v2 | |
with: | |
name: solara-builds-${{ github.run_number }} | |
- name: Link solara app package | |
run: | | |
cd packages/solara-vuetify-app | |
npm run devlink | |
- name: Prepare | |
run: mkdir test-results | |
- name: Install | |
run: | | |
pip install ".[dev,server,flask,documentation,pytest]" "voila~=${{ matrix.voila }}" "jupyterlab<4" "pydantic<2" "playwright==1.41.2" | |
(cd packages/solara-enterprise && pip install ".[ssg,auth]" "ipywidgets~=${{ matrix.ipywidgets }}") | |
- name: Install playwright | |
run: playwright install | |
- name: test | |
env: | |
AUTH0_USERNAME: [email protected] | |
AUTH0_PASSWORD: ${{ secrets.AUTH0_PASSWORD }} | |
FIEF_USERNAME: [email protected] | |
FIEF_PASSWORD: ${{ secrets.FIEF_PASSWORD }} | |
# TODO: we used to also run the (cheap) unittests, to get better coverage report, but that gives errors | |
# it seems on CI that the default playwright timeout is not (always?) respected, also, if the --timeout argument | |
# is shorter than the timeout of playwright, we get no good error message, summary: always keep above 30! | |
run: pytest tests/integration --timeout=360 --video=retain-on-failure --output=test-results -vv -s --log-cli-level=warning | |
- name: Upload Test artifacts | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: test-results | |
path: test-results |