Docs 0.4.25 - Fix #1080
Workflow file for this run
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: UI | |
on: | |
# Triggers the workflow on push or pull request events but only for the main branch | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
types: | |
- opened | |
- reopened | |
- synchronize | |
- ready_for_review | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
changed_files: | |
runs-on: ubuntu-22.04 # windows-latest || macos-latest | |
name: 👀 List Changed UI Files | |
outputs: | |
ui_any_modified: ${{ steps.changed-files.outputs.ui_any_modified == 'true' }} | |
evidently_python_any_modified: ${{ steps.changed-files.outputs.evidently_python_any_modified == 'true' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get all UI files that have changed | |
id: changed-files | |
uses: tj-actions/changed-files@v42 | |
with: | |
files_yaml: | | |
ui: | |
- ui/** | |
evidently_python: | |
- workspace-for-visual-testing.dvc | |
- src/evidently/** | |
- requirements.dev.txt | |
- requirements.min.txt | |
- setup.py | |
- setup.cfg | |
- setupbase.py | |
- name: Run step if UI file(s) changed | |
if: steps.changed-files.outputs.ui_any_modified == 'true' | |
run: | | |
echo "One or more ui file(s) has changed." | |
echo "List all the files that have changed: ${{ steps.changed-files.outputs.ui_all_changed_and_modified_files }}" | |
- name: Run step if Playwright file(s) changed | |
if: steps.changed-files.outputs.evidently_python_any_modified == 'true' | |
run: | | |
echo "One or more evidently_python file(s) has changed." | |
echo "List all the files that have changed: ${{ steps.changed-files.outputs.evidently_python_all_changed_and_modified_files }}" | |
ui-build: | |
name: UI type-check and build with node v${{ matrix.node-version }} | |
runs-on: ubuntu-22.04 | |
needs: changed_files | |
if: ${{ github.event.pull_request.draft == false && needs.changed_files.outputs.ui_any_modified == 'true' }} | |
strategy: | |
matrix: | |
node-version: [20] | |
steps: | |
- name: ⬇️ Checkout repo | |
uses: actions/checkout@v4 | |
- uses: pnpm/action-setup@v3 | |
with: | |
version: 9 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: "pnpm" | |
cache-dependency-path: ui/pnpm-lock.yaml | |
- name: 📥 Install node dependencies | |
working-directory: ui | |
run: pnpm i --frozen-lockfile --ignore-scripts | |
- name: 🔬 Type check | |
working-directory: ui | |
run: pnpm type-check | |
- name: 🔧 Build | |
working-directory: ui | |
run: pnpm build | |
- name: 🔬 Analyze deps | |
working-directory: ui/service | |
run: npx [email protected] -o vite-bundle-report/index.html | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: vite-bundle-visualizer-${{ matrix.node-version }} | |
path: ui/service/vite-bundle-report | |
retention-days: 30 | |
ui-test: | |
name: Playwright tests for Service | |
runs-on: ubuntu-22.04 | |
needs: changed_files | |
if: ${{ github.event.pull_request.draft == false && needs.changed_files.outputs.evidently_python_any_modified == 'true' }} | |
steps: | |
- name: ⬇️ Checkout repo | |
uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.9" | |
architecture: "x64" | |
cache: "pip" | |
- name: Install Evidently | |
run: pip install -e . | |
- name: Install dvc | |
run: pip install 'dvc[gs]==3.50.1' | |
- name: Pull test data | |
run: dvc pull | |
- uses: pnpm/action-setup@v3 | |
with: | |
version: 9 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "20" | |
cache: "pnpm" | |
cache-dependency-path: ui/pnpm-lock.yaml | |
- name: 📥 Install node dependencies | |
working-directory: ui | |
run: pnpm i --frozen-lockfile --ignore-scripts | |
- name: Install Playwright Browsers | |
working-directory: ui | |
run: pnpm dlx [email protected] install --with-deps | |
- name: Run UI | |
run: evidently ui --port 8000 --workspace workspace-for-visual-testing & | |
- name: Wait UI to be ready to test | |
working-directory: ui/service | |
run: pnpm wait-on tcp:127.0.0.1:8000 -t 10000 | |
- name: Run Service Playwright tests | |
working-directory: ui/service | |
run: pnpm test | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: playwright-report | |
path: ui/service/playwright-report/ | |
retention-days: 30 |