# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. --- default_stages: [commit, push] default_language_version: # force all unspecified python hooks to run python3 python: python3 repos: - repo: local hooks: - id: build name: Check if image build is needed entry: ./scripts/ci/ci_build.sh language: system always_run: true pass_filenames: false - id: check-apache-license name: Check if licences are OK for Apache entry: ./scripts/ci/ci_check_license.sh language: system files: ^.*LICENSE.*$|^.*LICENCE.*$ pass_filenames: false require_serial: true - repo: https://github.com/Lucas-C/pre-commit-hooks rev: v1.1.7 hooks: - id: forbid-tabs exclude: ^airflow/_vendor/.*$|^docs/Makefile$ - id: insert-license name: Add licence for all SQL files files: \.sql$ exclude: ^\.github/.*$|^airflow/_vendor/.*$ args: - --comment-style - "/*||*/" - --license-filepath - license-templates/LICENSE.txt - --fuzzy-match-generates-todo - id: insert-license name: Add licence for all other files exclude: ^\.github/.*$"|^airflow/_vendor/.*$ args: - --comment-style - "|#|" - --license-filepath - license-templates/LICENSE.txt - --fuzzy-match-generates-todo files: > \.properties$|\.cfg$|\.conf$|\.ini$|\.ldif$|\.readthedocs$|\.service$|^Dockerfile.*$ - id: insert-license name: Add licence for all rst files exclude: ^\.github/.*$"|^airflow/_vendor/.*$ args: - --comment-style - "||" - --license-filepath - license-templates/LICENSE.rst - --fuzzy-match-generates-todo files: \.rst$ - id: insert-license name: Add licence for all JS files files: \.js$ exclude: ^\.github/.*$|^airflow/_vendor/.*$ args: - --comment-style - "/**| *| */" - --license-filepath - license-templates/LICENSE.txt - --fuzzy-match-generates-todo - id: insert-license name: Add licence for all JINJA template files files: ^airflow/www/templates/.*\.html$|^docs/templates/.*\.html$|^airflow/contrib/plugins/metastore_browser/templates/.*\.html$ # yamllint disable-line rule:line-length exclude: ^\.github/.*$|^airflow/_vendor/.*$ args: - --comment-style - "{#||#}" - --license-filepath - license-templates/LICENSE.txt - --fuzzy-match-generates-todo - id: insert-license name: Add licence for shell files exclude: ^\.github/.*$"|^airflow/_vendor/.*$ types: [shell] files: ^breeze$|^breeze-complete$|\.sh$ args: - --comment-style - "|#|" - --license-filepath - license-templates/LICENSE.txt - --fuzzy-match-generates-todo - id: insert-license name: Add licence for all XML files exclude: ^\.github/.*$"|^airflow/_vendor/.*$ types: [xml] args: - --comment-style - "" - --license-filepath - license-templates/LICENSE.txt - --fuzzy-match-generates-todo - id: insert-license name: Add licence for yaml files exclude: ^\.github/.*$"|^airflow/_vendor/.*$ types: [yaml] args: - --comment-style - "|#|" - --license-filepath - license-templates/LICENSE.txt - --fuzzy-match-generates-todo - id: insert-license name: Add licence for all md files files: \.md$ exclude: ^\.github/.*$|^airflow/_vendor/.*$ args: - --comment-style - "" - --license-filepath - license-templates/LICENSE.txt - --fuzzy-match-generates-todo - repo: https://github.com/thlorenz/doctoc.git rev: v1.4.0 hooks: - id: doctoc name: Add TOC for md files files: ^README\.md$|^CONTRIBUTING\.md$|^UPDATING.md$|^dev/README.md$ args: - "--maxlevel" - "2" - repo: meta hooks: - id: check-hooks-apply - repo: https://github.com/pre-commit/pre-commit-hooks rev: v2.3.0 hooks: - id: check-merge-conflict - id: detect-private-key - id: end-of-file-fixer - id: mixed-line-ending - id: check-executables-have-shebangs - id: check-xml - repo: local hooks: - id: yamllint name: Check yaml files with yamllint entry: yamllint -c yamllint-config.yml language: python additional_dependencies: ['yamllint'] types: [yaml] exclude: ^.*init_git_sync\.template\.yaml$|^.*airflow\.template\.yaml$ - id: shellcheck name: Check Shell scripts syntax correctness language: docker_image entry: koalaman/shellcheck:stable -x -a types: [shell] files: ^breeze$|^breeze-complete$|\.sh$ exclude: ^airflow/_vendor/.*$ - id: lint-dockerfile name: Lint dockerfile language: system entry: ./scripts/ci/ci_lint_dockerfile.sh files: ^Dockerfile.*$ - id: mypy name: Run mypy language: system entry: ./scripts/ci/ci_mypy.sh files: \.py$ exclude: ^airflow/_vendor/.*$ - id: pylint name: Run pylint for main sources language: system entry: ./scripts/ci/ci_pylint_main.sh files: \.py$ exclude: ^tests/.*\.py$|^airflow/_vendor/.*$ - id: pylint name: Run pylint for tests language: system entry: ./scripts/ci/ci_pylint_tests.sh files: ^tests/.*\.py$ - id: flake8 name: Run flake8 language: system entry: ./scripts/ci/ci_flake8.sh files: \.py$