diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9566d06d..bce81ade 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -206,6 +206,20 @@ jobs: - name: Lint run: tox -c pyproject.toml -e flake8,mypy,isort + htmlvalidator: + name: HTML Validator + runs-on: ubuntu-latest + needs: test-ubuntu-python-newest + steps: + - uses: actions/checkout@v5 + - uses: actions/setup-python@v6 + with: + python-version: '3.14' + - uses: Cyb3r-Jak3/html5validator-action@v7.2.0 + with: + root: 'radicale/web/internal_data/' + css: true + integ-test: timeout-minutes: 60 runs-on: ubuntu-latest diff --git a/pyproject.toml b/pyproject.toml index fbf8b38b..010f5f29 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,7 +44,7 @@ test = ["pytest>=7", "waitress", "bcrypt", "argon2-cffi"] bcrypt = ["bcrypt"] argon2 = ["argon2-cffi"] ldap = ["ldap3"] -dev = ["flake8", "isort", "mypy", "pytest", "pytest-playwright"] +dev = ["flake8", "isort", "mypy", "pytest", "pytest-playwright", "html5validator"] [project.scripts] radicale = "radicale.__main__:run" @@ -55,7 +55,7 @@ build-backend = "setuptools.build_meta" [tool.tox] min_version = "4.0" -envlist = ["py", "flake8", "isort", "mypy", "integ_test"] +envlist = ["py", "flake8", "isort", "mypy", "integ_test", "html5validator"] [tool.tox.env.py] extras = ["test"] @@ -87,6 +87,11 @@ setenv = { PLAYWRIGHT_BROWSERS_PATH = "{toxworkdir}/.playwright" } commands_pre = [["playwright", "install", "chromium"]] commands = [["pytest", "integ_tests"]] +[tool.tox.env.html5validator] +deps = ["html5validator"] +commands = [["html5validator", "--root", "radicale/web/internal_data/", "--also-check-css"]] + + [tool.pytest.ini_options] norecursedirs = ["integ_tests"]