Skip to content

cardboardci/pylint

cardboardci/pylint is a Docker image built with continuous integration builds in mind. Each tag contains any binaries and tools that are required for builds to complete successfully in a continuous integration environment. This includes jq, curl, bash and utilities for linting of Python.

Pylint is a Python static code analysis tool which looks for programming errors, helps enforcing a coding standard, sniffs for code smells and offers simple refactoring suggestions.

It's highly configurable, having special pragmas to control its errors and warnings from within your code, as well as from an extensive configuration file. It is also possible to write your own plugins for adding your own checks or for extending pylint in one way or another.

You can see the cli reference here.

Getting Started

This image can be used with the docker type for different types of continuous integration platforms. For example:

# GitHub Actions
jobs:
    my_first_job:
        steps:
            - name: My first step
              uses: docker://ghcr.io/cardboardci/pylint:edge
              with:
                  args: "pylint --version"

Pull latest image

The edge or latest version of the image is available with the tag edge. This isn't intended to long term use, but for working with the latest version of the image. To pull the latest image, run the following:

docker pull ghcr.io/cardboardci/pylint:edge

Test interactively

Sometimes it can be useful to run the image in an interactive shell for experimentation. To shell into an image, run the following:

docker run -it ghcr.io/cardboardci/pylint:edge /bin/bash

Run a basic command

To run a single command from the context of the docker image, run the following:

docker run -it -v `pwd`:/workspace ghcr.io/cardboardci/pylint:edge pylint --version

Fundamentals

All images in the CardboardCI namespace are built from cardboardci/base. This image is intended to provide a common set of dependencies and expectations about how the images will behave. The image will always be built from the base image, to ensure any changes seen in the base are included in the downstream image.