Browse Source

Check jinja templates for syntax error (#10667)

Allow to fail early (pre-commit time) for jinja error, rather than
waiting until executing the playbook and the invalid template.

I could not find a simple jinja pre-commit hook in the wild.
pull/10694/head
Max Gautier 11 months ago
committed by GitHub
parent
commit
d2944d2813
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 0 deletions
  1. 8
      .gitlab-ci/lint.yml
  2. 9
      .pre-commit-config.yaml
  3. 9
      tests/scripts/check-templates.py

8
.gitlab-ci/lint.yml

@ -27,6 +27,14 @@ ansible-lint:
- ansible-lint -v
except: ['triggers', 'master']
jinja-syntax-check:
extends: .job
stage: unit-tests
tags: [light]
script:
- "find -name '*.j2' -exec tests/scripts/check-templates.py {} +"
except: ['triggers', 'master']
syntax-check:
extends: .job
stage: unit-tests

9
.pre-commit-config.yaml

@ -69,3 +69,12 @@ repos:
entry: tests/scripts/md-table/test.sh
language: script
pass_filenames: false
- id: jinja-syntax-check
name: jinja-syntax-check
entry: tests/scripts/check-templates.py
language: python
types:
- jinja
additional_dependencies:
- Jinja2

9
tests/scripts/check-templates.py

@ -0,0 +1,9 @@
#!/usr/bin/env python
import sys
from jinja2 import Environment
env = Environment()
for template in sys.argv[1:]:
with open(template) as t:
env.parse(t.read())
Loading…
Cancel
Save