cytopia / awesome-ci
提供大量用于git、文件和静态源代码分析的工具。
README
⚠️ 弃用警告
此仓库已被弃用。请使用以下Docker镜像代替
所有 #awesome-ci Docker镜像
ansible-lint • ansible • awesome-ci • bandit • black • checkmake • eslint • file-lint • gofmt • goimports • golint • jsonlint • kubeval • linkcheck • mypy • php-cs-fixer • phpcbf • phpcs • phplint • pycodestyle • pydocstyle • pylint • terraform-docs • terragrunt-fmt • terragrunt • yamlfmt • yamllint
Docker镜像
避免安装大量依赖项,选择以下您喜欢的linters的Docker版本,以便进行可重复的本地或远程CI测试
[1] 使用shell包装器添加原始项目不可用的 增强功能。
运行于
为git仓库、文件特性、语法错误和静态源代码分析提供持续集成命令行工具。
Awesome-CI能够查找您的代码仓库中的各种问题,并能够自动修复它们。
目录
工具
所有检查都可选择只按一个或多个文件扩展名、按shebang以及从整个搜索中排除一个或多个文件夹。
注意:可修复的选项目前处于测试阶段。请报告任何错误。
学习/验证
上述所有脚本都提供了--dry选项,它只会显示构建的命令而不会实际执行它
$ regex-grep --path=. --ignore=".git,.svn" --shebang=sh --size --text \ --custom="if[[:space:]]*\[\[" --dry find . -type f -not \( -path "./.git*" -o -path "./.svn*" \) ! -size 0 -print0 | \ xargs -0 -P 8 -n1 grep -Il '' | \ tr '\n' '\0' | \ xargs -0 -P 8 -n1 awk '/^#!.*(\/sh|[[:space:]]+sh)/{print FILENAME}' | \ tr '\n' '\0' | \ xargs -0 -P 8 -n1 sh -c 'if [ -f "${1}" ]; then grep --color=always -inHE "if[[:space:]]*\[\[" "$1" || true; fi' --
修复
上述一些脚本提供了--fix选项(见上表),您可以使用它来修复问题。您还可以将其与--dry结合使用,以查看实际修复命令的外观
$ file-utf8 --path=dump.sql --fix --dry find dump.sql -type f -print0 | \ xargs -0 -P 8 -n1 sh -c 'if [ -f "${1}" ]; then isutf8 "$1" >/dev/null || (TERM=vt100 vi -u NONE -n -es -c "set fileencoding=utf8" -c "wq" "$1" > /dev/tty && echo "Fixing: $1" || echo "FAILED: $1"); fi' --
自定义正则表达式贡献
regex-grep和regex-perl有很多潜力用于自定义项目验证。
为了给您一个概念,请查看编译的正则表达式贡献。
请使用拉取请求添加有用的检查。
通用用法
- 所有工具都遵循相同的模式(除
git-ignored外)并且可以使用相同的命令行参数。 - 一些工具有附加选项
--custom="",可以覆盖命令本身(这在每个命令的--help选项中都有详细解释和展示)。
选项
# Required: --path # Specify the path where to scan # Optional pattern (each option is logically and-ed): --fix # Fix the problems for the specified files (not every check) --text # Only scan non-binary files --size # Only scan non-empty files (greater 0 bytes) --shebang # Only scan files (shell scripts) that match a certain shebang --extension # Only scan files with these file extensions --ignore # Ignore files/folders # Optional misc: --config # Specify configuration file --confpre # Alter configuration directive prefix for this check --verbose # Show files and commands as being processed --debug # Show additional debug messages --list # Only show files that would be processed (no processing) --dry # Show command that would be executed (no processing) # System --help # Show help --info # Show version of required binaries --version # Show tool version
安装
要求
Awesome-ci需要安装以下工具
dos2unixeslintfilegitjsonlintmdlperlphppythonrubyscss_lintshellcheck
安装OSX
brew tap cytopia/tap brew install awesome-ci
安装Linux/BSD
# Install to /usr/bin ./configure make install # Instal to /usr/local/bin ./configure --prefix=/usr/local make install # Install to /opt/bin ./configure --prefix=/opt make install
出色的CI Docker镜像
您也可以使用捆绑的Docker镜像,而不是在您的计算机上本地安装awesome-ci及其所有依赖项。该镜像已经预安装,并且由travis-ci每晚构建。cytopia/awesome-ci
docker run -v ${PWD}:/ac cytopia/awesome-ci file-crlf --path=/ac
上述示例使用file-crlf扫描当前目录以查找包含Windows新行的文件
${PWD}(当前主机目录)被挂载到容器的/ac目录file-crlf路径(在容器内部)指向/ac(这是当前主机目录)/ac可以命名为您想要的任何名称
如果您使用的是不在您想要检查的目录中的awesome-ci配置,您还必须将其挂载到容器中
docker run \
-v /host/path/to/awesome-ci.conf:/etc/awesome-ci.conf \
-v ${PWD}:/ac cytopia/awesome-ci file-crlf --path=/ac --config=/etc/awesome-ci.conf
文档
要了解更多关于awesome-ci的信息,请参阅以下链接。
许可
版权(c)2018 cytopia