diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1dc9f1348ff252c11ab41d51a6812e5795323208..e5c2a358cd369b570a63ee3eb8c6bf4015c1e5da 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,6 +4,7 @@ include: stages: - build - build-test-images + - lint - application-test - integration-test @@ -51,6 +52,18 @@ integration_test: - ./test/integration_tests/test/**/* - .gitlab-ci.yml +pylint: + stage: build-test-images + variables: + KANIKO_CONTEXT: "test/lint/pylint" + KANIKO_BUILD_IMAGENAME: $CI_JOB_NAME + extends: .kaniko_build + only: + changes: + - test/lint/pylint/Dockerfile + - test/lint/pylint/requirements.txt + - .gitlab-ci.yml + behave-integration: stage: integration-test @@ -140,3 +153,15 @@ behave-integration: - test/integration_tests/test/behave/screenshots/ expire_in: 1 month when: on_failure + +pylint-lint: + stage: lint + variables: + GIT_AUTHOR_NAME: "RUNNER" + GIT_AUTHOR_EMAIL: "runner@greenhost.net" + PYLINT_PLUGINS: "pylint_flask pylint_flask_sqlalchemy" + image: ${CI_REGISTRY_IMAGE}/pylint:${CI_COMMIT_REF_NAME} + script: + - echo "Reverting back to master to squash commits" + - git reset --soft master + - git lint diff --git a/.gitlint.yaml b/.gitlint.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c43372fddc5b8ca3fda7fce5fc0956d7b2e3ddf1 --- /dev/null +++ b/.gitlint.yaml @@ -0,0 +1,19 @@ +# Python +pylint: + extensions: + - .py + command: pylint + arguments: + - --output-format=text + - --load-plugins=$PYLINT_PLUGINS + - >- + --msg-template={{abspath}}:{{line}}:{{column}}: + [{{category}}:{{symbol}}] {{obj}}: {{msg}} + - --reports=n + filter: >- + ^{filename}:(?P<line>{lines}):((?P<column>\d+):)? + \[(?P<severity>.+):(?P<message_id>\S+)\]\s+(: + )?(?P<message>.+)$ + installation: "Run pip install pylint." + + diff --git a/test/lint/pylint/Dockerfile b/test/lint/pylint/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..a430baf8925dd59c5e7dd860708480a75599b89c --- /dev/null +++ b/test/lint/pylint/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.7-alpine + +RUN apk add build-base git bc + +COPY requirements.txt ./ +RUN pip3 install --no-cache-dir -r requirements.txt diff --git a/test/lint/pylint/requirements.txt b/test/lint/pylint/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..aa428fe9f8b5fb120b10e362d4a5f82cd4cb39a2 --- /dev/null +++ b/test/lint/pylint/requirements.txt @@ -0,0 +1,4 @@ +pylint +pylint-flask-sqlalchemy +pylint-flask +git-lint