cytopia/awesome-ci

提供大量用于git、文件和静态源代码分析的工具。

0.12 2018-12-08 12:00 UTC

This package is auto-updated.

Last update: 2024-09-05 22:24:57 UTC


README

Build Status Latest Stable Version Total Downloads Docker image License

⚠️ 弃用警告

此仓库已被弃用。请使用以下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包装器添加原始项目不可用的 增强功能

Docker image

运行于

Linux FreeBSD OSX

为git仓库、文件特性、语法错误和静态源代码分析提供持续集成命令行工具。

Awesome-CI能够查找您的代码仓库中的各种问题,并能够自动修复它们。

目录

  1. 工具
  2. 学习/验证
  3. 修复
  4. 自定义正则表达式贡献
  5. 通用用法
  6. 安装
    1. 要求
    2. 安装OSX
    3. 安装Linux/BSD
  7. 出色的CI Docker镜像
  8. 文档
  9. 许可

工具

所有检查都可选择只按一个或多个文件扩展名、按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-grepregex-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需要安装以下工具

  • dos2unix
  • eslint
  • file
  • git
  • jsonlint
  • mdl
  • perl
  • php
  • python
  • ruby
  • scss_lint
  • shellcheck

安装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 image

您也可以使用捆绑的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的信息,请参阅以下链接。

许可

MIT许可

版权(c)2018 cytopia