diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..486e7960 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Build-related directories and files +.task +build diff --git a/lint-requirements.txt b/lint-requirements.txt new file mode 100644 index 00000000..993e8b4f --- /dev/null +++ b/lint-requirements.txt @@ -0,0 +1 @@ +yamllint>=1.35.1 diff --git a/taskfile.yaml b/taskfile.yaml new file mode 100644 index 00000000..478ba2af --- /dev/null +++ b/taskfile.yaml @@ -0,0 +1,20 @@ +version: "3" + +includes: + lint: "./taskfiles/lint.yaml" + utils: "tools/yscope-dev-utils/taskfiles/utils.yml" + +vars: + G_BUILD_DIR: "{{.ROOT_DIR}}/build" + +tasks: + clean: + cmds: + - "rm -rf '{{.G_BUILD_DIR}}'" + + init: + internal: true + silent: true + run: "once" + cmds: + - "mkdir -p '{{.G_BUILD_DIR}}'" diff --git a/taskfiles/lint-yaml.yaml b/taskfiles/lint-yaml.yaml new file mode 100644 index 00000000..0196a038 --- /dev/null +++ b/taskfiles/lint-yaml.yaml @@ -0,0 +1,19 @@ +version: "3" + +tasks: + yaml: + aliases: + - "yaml-check" + - "yaml-fix" + deps: + - "venv" + dir: "{{.ROOT_DIR}}" + cmds: + - |- + . "{{.G_LINT_VENV_DIR}}/bin/activate" + yamllint \ + --config-file "tools/yscope-dev-utils/lint-configs/.yamllint.yml" \ + --strict \ + .github \ + taskfile.yaml \ + taskfiles/ diff --git a/taskfiles/lint.yaml b/taskfiles/lint.yaml new file mode 100644 index 00000000..cbfca7ea --- /dev/null +++ b/taskfiles/lint.yaml @@ -0,0 +1,48 @@ +version: "3" + +includes: + yaml: + flatten: true + taskfile: "./lint-yaml.yaml" + +vars: + G_LINT_VENV_DIR: "{{.G_BUILD_DIR}}/lint-venv" + G_LINT_VENV_CHECKSUM_FILE: "{{.G_BUILD_DIR}}/lint#venv.md5" + +tasks: + check: + cmds: + - task: "yaml-check" + + fix: + cmds: + - task: "yaml-fix" + + venv: + internal: true + vars: + CHECKSUM_FILE: "{{.G_LINT_VENV_CHECKSUM_FILE}}" + OUTPUT_DIR: "{{.G_LINT_VENV_DIR}}" + sources: + - "{{.ROOT_DIR}}/taskfile.yaml" + - "{{.TASKFILE}}" + - "lint-requirements.txt" + generates: + - "{{.CHECKSUM_FILE}}" + deps: + - ":init" + - task: ":utils:validate-checksum" + vars: + CHECKSUM_FILE: "{{.CHECKSUM_FILE}}" + DATA_DIR: "{{.OUTPUT_DIR}}" + cmds: + - task: ":utils:create-venv" + vars: + LABEL: "lint" + OUTPUT_DIR: "{{.OUTPUT_DIR}}" + REQUIREMENTS_FILE: "lint-requirements.txt" + # This command must be last + - task: ":utils:compute-checksum" + vars: + DATA_DIR: "{{.OUTPUT_DIR}}" + OUTPUT_FILE: "{{.CHECKSUM_FILE}}"