* chore: remove _decorate_all_methods_and_functions_with_type_checker No one understands this runtime magic anymore. * build: Bump coverage.py to latest * test: Skip github in coverage reporting * test: Print traceback from all threads when test is stuck * ci: Enable coverage in server side tests * ci: Always enable coverage It's cheap in recent python versions, our reasons for selectively disabling aren't valid anymore. * ci: Disable stderr capturing * ci: Use default buffer behaviour in unittest runner * ci(coverage): Set concurrency to multiprocessing We do use multiprocessing, perhaps the patches aren't concurrectly handled? * ci(coverage): Try parallel run * fix: Apply subprocess patch * ci: Don't start web server with coverage Causes deadlock for some reason. We don't actually report it either. * ci: only submit UI coverage if ran * test: remove aggresive stuck test checking * ci: disable UI coverage (for now)
78 lines
2 KiB
YAML
78 lines
2 KiB
YAML
name: UI
|
|
|
|
on:
|
|
pull_request:
|
|
repository_dispatch:
|
|
types: [frappe-framework-change]
|
|
workflow_dispatch:
|
|
schedule:
|
|
# Run everday at midnight UTC / 5:30 IST
|
|
- cron: "0 0 * * *"
|
|
|
|
concurrency:
|
|
group: ui-develop-${{ github.event_name }}-${{ github.event.number }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
# Do not change this as GITHUB_TOKEN is being used by roulette
|
|
contents: read
|
|
|
|
jobs:
|
|
checkrun:
|
|
name: Plan Tests
|
|
runs-on: ubuntu-latest
|
|
|
|
outputs:
|
|
build: ${{ steps.check-build.outputs.build }}
|
|
|
|
steps:
|
|
- name: Clone
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Check if build should be run
|
|
id: check-build
|
|
run: |
|
|
python "${GITHUB_WORKSPACE}/.github/helper/roulette.py"
|
|
env:
|
|
TYPE: "ui"
|
|
PR_NUMBER: ${{ github.event.number }}
|
|
REPO_NAME: ${{ github.repository }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
test:
|
|
name: Tests (Cypress)
|
|
uses: ./.github/workflows/_base-ui-tests.yml
|
|
with:
|
|
parallel-runs: 3
|
|
enable-coverage: false
|
|
fake-success: ${{ needs.checkrun.outputs.build != 'strawberry' }}
|
|
needs: checkrun
|
|
|
|
coverage:
|
|
name: Coverage Wrap Up
|
|
needs: [test, checkrun]
|
|
if: ${{ needs.checkrun.outputs.build == 'strawberry' }}
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Clone
|
|
uses: actions/checkout@v6
|
|
- name: Download artifacts
|
|
uses: actions/download-artifact@v8.0.1
|
|
- name: Upload python coverage data
|
|
uses: codecov/codecov-action@v6
|
|
with:
|
|
name: UIBackend
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
fail_ci_if_error: true
|
|
verbose: true
|
|
exclude: coverage-js*
|
|
flags: server-ui
|
|
- name: Upload JS coverage data
|
|
uses: codecov/codecov-action@v6
|
|
with:
|
|
name: Cypress
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
fail_ci_if_error: true
|
|
exclude: coverage-py*
|
|
verbose: true
|
|
flags: ui-tests
|