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 2023-12-06 03:05:24 +01:00 committed by GitHub
parent fe02d21d23
commit d2944d2813
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 0 deletions

View File

@ -27,6 +27,14 @@ ansible-lint:
- ansible-lint -v - ansible-lint -v
except: ['triggers', 'master'] 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: syntax-check:
extends: .job extends: .job
stage: unit-tests stage: unit-tests

View File

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

View File

@ -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())