1
0
mirror of https://github.com/tektoncd/catalog.git synced 2024-11-22 06:02:51 +00:00
catalog/task/mypy-lint/0.1
Vincent Demeester d93795673c Update self reference from master to main 🧙
And update references to community, pipeline, etc. too.

Signed-off-by: Vincent Demeester <vdemeest@redhat.com>
2021-03-19 11:09:49 +00:00
..
tests Add add_task helper function for tests 2020-10-07 17:51:55 +01:00
mypy-lint.yaml Add Mypy Linter for Python 2020-10-07 10:19:54 +01:00
README.md Update self reference from master to main 🧙 2021-03-19 11:09:49 +00:00

Mypy Linter for Python

Mypy is an optional static type checker for Python that aims to combine the benefits of dynamic (or "duck") typing and static typing. Mypy combines the expressive power and convenience of Python with a powerful type system and compile-time type checking. Mypy type checks standard Python programs; run them using any Python VM with basically no runtime overhead.

The following task is used to provide static analysis on python files mounted using mypy (Python linter).

Installing the Task

kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/mypy-lint/0.1/mypy-lint.yaml

Parameters

  • args: The extra params along with the file path needs to be provided as the part of args. (Default: ["--help"])

Workspaces

  • shared-workspace: The workspace containing files on which we want to apply linter check. It can be a shared workspace with the git-clone task or a ConfigMap mounted containing some files.

Usage

  1. Create the git-clone task
kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/git-clone/0.1/git-clone.yaml
  1. Create the PVC

  2. Apply the required tasks

  3. Create the Pipeline and PipelineRun for Python linter

apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: linter-pipeline
spec:
  workspaces:
    - name: shared-workspace
  tasks:
    - name: fetch-repository
      taskRef:
        name: git-clone
      workspaces:
        - name: output
          workspace: shared-workspace
      params:
        - name: url
          value: https://github.com/vinamra28/tekton-linter-test
        - name: revision
          value: "linter-test"
        - name: subdirectory
          value: ""
        - name: deleteExisting
          value: "true"
    - name: mypy-lint-run #lint python
      taskRef:
        name: mypy-lint
      runAfter:
        - fetch-repository
      workspaces:
        - name: shared-workspace
          workspace: shared-workspace
      params:
        - name: args
          value: ["python.py"]

---
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  name: linter-pipeline-run
spec:
  pipelineRef:
    name: linter-pipeline
  workspaces:
    - name: shared-workspace
      persistentvolumeclaim:
        claimName: linter-pvc

NOTE: Pipeline will go into failed state if the linter check fails.