diff --git a/.github/workflows/lint-html.yml b/.github/workflows/lint-html.yml
new file mode 100644
index 0000000000..5ffba5ec26
--- /dev/null
+++ b/.github/workflows/lint-html.yml
@@ -0,0 +1,38 @@
+name: HTML Linting
+on:
+ push:
+ paths:
+ - "package*.json"
+ - ".vnurc"
+ - "aria-practices.html"
+ - "examples/**/*.html"
+ - ".github/workflows/lint-html.yml"
+ - ".github/workflows/vnu-jar-problem-matcher.json"
+
+ pull_request:
+ paths:
+ - "package*.json"
+ - ".vnurc"
+ - "aria-practices.html"
+ - "examples/**/*.html"
+ - ".github/workflows/lint-html.yml"
+ - ".github/workflows/vnu-jar-problem-matcher.json"
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v2
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v1
+
+ - name: Install npm dependencies
+ run: npm ci
+
+ - name: HTML Validator
+ run: |
+ echo "::add-matcher::.github/workflows/vnu-jar-problem-matcher.json"
+ npm run lint:html
diff --git a/.github/workflows/vnu-jar-problem-matcher.json b/.github/workflows/vnu-jar-problem-matcher.json
new file mode 100644
index 0000000000..d4cb3cccc6
--- /dev/null
+++ b/.github/workflows/vnu-jar-problem-matcher.json
@@ -0,0 +1,17 @@
+{
+ "problemMatcher": [
+ {
+ "owner": "vnu-jar",
+ "pattern": [
+ {
+ "regexp": "^\"file:(.*)\":(\\d+).(\\d+)-\\d+\\.\\d+:\\s(error|warning):\\s(.*)$",
+ "file": 1,
+ "line": 2,
+ "column": 3,
+ "severity": 4,
+ "message": 5
+ }
+ ]
+ }
+ ]
+}
diff --git a/.travis.yml b/.travis.yml
index 68b7c48660..d235e9b27b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -15,9 +15,6 @@ jobs:
- env: ALLOW_FAILURE=true
include:
- - stage: Lint
- name: HTML Linting
- script: npm run vnu-jar
- stage: Lint
name: Spellcheck
script: npm run lint:spelling