All #awesome-ci Docker images
ansible • ansible-lint • awesome-ci • black • checkmake • eslint • file-lint • gofmt • goimports • golint • jsonlint • phpcbf • phpcs • phplint • php-cs-fixer • pycodestyle • pylint • terraform-docs • terragrunt • terragrunt-fmt • yamlfmt • yamllint
All #awesome-ci Makefiles
Visit cytopia/makefiles for seamless project integration, minimum required best-practice code linting and CI.
View Dockerfile on GitHub.
Tiny Alpine-based dockerized version of PHP[1], which defaults to linting mode and adds the option to ignore files and paths. The image is built nightly against multiple stable versions and pushed to Dockerhub.
- [1] Official project: https://github.com/php/php-src
| Docker tag | PHP Version |
|---|---|
latest |
Latest stable version |
7.3 |
Latest stable 7.3.x version |
7.2 |
Latest stable 7.2.x version |
7.1 |
Latest stable 7.1.x version |
7.0 |
Latest stable 7.0.x version |
5.6 |
Latest stable 5.6.x version |
The working directory inside the Docker container is /data/ and should be mounted locally to
where your PHP code is located
$ docker run -it --rm cytopia/phplint --helpUsage: cytopia/phplint [-i] <PATH-TO-FILE>
cytopia/phplint [-i] <GLOB-PATTERN>
cytopia/phplint --version
cytopia/phplint --help
-i <GLOB-PATTERN> Ignore glob pattern when using the GLOB-PATTERN for file search.
(e.g.: -i '\.test*.php')
<PATH-TO-FILE> Path to file to validate
<GLOB-PATTERN> Glob pattern for recursive scanning. (e.g.: *\.php)
Anything that "find . -name '<GLOB-PATTERN>'" will take is valid.$ docker run -it --rm -v $(pwd):/data cytopia/phplintfind . -name "*.php" -type f -print0
php -d display_errors=1 -d error_reporting=-1 -l ./index.php
php -d display_errors=1 -d error_reporting=-1 -l ./config.php
php -d display_errors=1 -d error_reporting=-1 -l ./settings.php
Parse error: syntax error, unexpected 'echo' (T_ECHO), expecting ',' or ';' in ./settings.php on line 4You can add the following Makefile to your project for easy generation of PHP linting.
ifneq (,)
.error This Makefile requires GNU Make.
endif
.PHONY: lint _update-phplint
CURRENT_DIR = $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
VERSION = 7.3
IGNORES = ./vendor/*
lint: _update-phplint
docker run -it --rm cytopia/phplint:${VERSION} -i ${IGNORES} '*.php'
_update-phplint:
docker pull cytopia/phplint:${VERSION}With the above Makefile in place, you can easily add a Travis CI rule to ensure the terraform-docs output is always up-to-date and will fail otherwise (due to git changes):
---
sudo: required
language: minimal
services:
- docker
script:
- make lintRelated #awesome-ci projects
Save yourself from installing lot's of dependencies and pick a dockerized version of your favourite linter below for reproducible local or remote CI tests:
| GitHub | DockerHub | Type | Description |
|---|---|---|---|
| awesome-ci | Basic | Tools for git, file and static source code analysis | |
| file-lint | Basic | Baisc source code analysis | |
| ansible | Ansible | Multiple versions and flavours of Ansible | |
| ansible-lint | Ansible | Lint Ansible | |
| gofmt | Go | Format Go source code [1] | |
| goimports | Go | Format Go source code [1] | |
| golint | Go | Lint Go code | |
| eslint | Javascript | Lint Javascript code | |
| jsonlint | JSON | Lint JSON files [1] | |
| checkmake | Make | Lint Makefiles | |
| phpcbf | PHP | PHP Code Beautifier and Fixer | |
| phpcs | PHP | PHP Code Sniffer | |
| phplint | PHP | PHP Code Linter [1] | |
| php-cs-fixer | PHP | PHP Coding Standards Fixer | |
| black | Python | The uncompromising Python code formatter | |
| pycodestyle | Python | Python style guide checker | |
| pylint | Python | Python source code, bug and quality checker | |
| terraform-docs | Terraform | Terraform doc generator (TF 0.12 ready) [1] | |
| terragrunt | Terraform | Terragrunt and Terraform | |
| terragrunt-fmt | Terraform | terraform fmt for Terragrunt files [1] |
|
| yamlfmt | Yaml | Format Yaml files [1] | |
| yamllint | Yaml | Lint Yaml files |
[1] Uses a shell wrapper to add enhanced functionality not available by original project.
Visit cytopia/makefiles for dependency-less, seamless project integration and minimum required best-practice code linting for CI. The provided Makefiles will only require GNU Make and Docker itself removing the need to install anything else.
Copyright (c) 2019 cytopia