All Projects β†’ cytopia β†’ Awesome Ci

cytopia / Awesome Ci

Licence: mit
Awesome Continuous Integration - Lot's of tools for git, file and static source code analysis.

Programming Languages

python
139335 projects - #7 most used programming language
ruby
36898 projects - #4 most used programming language
shell
77523 projects
perl
6916 projects

Projects that are alternatives of or similar to Awesome Ci

Androidsdk
🐳 Full-fledged Android SDK Docker Image
Stars: ✭ 776 (+205.51%)
Mutual labels:  ci, continuous-integration, docker-image
Wflow
πŸ† EXPERIMENTAL -- Runs GitHub Actions workflows locally (local) -- Don't run your YAML like a πŸͺ
Stars: ✭ 187 (-26.38%)
Mutual labels:  ci, continuous-integration
Env Ci
Get environment variables exposed by CI services
Stars: ✭ 180 (-29.13%)
Mutual labels:  ci, continuous-integration
Jenkins Rest
Java client, built on top of jclouds, for working with Jenkins REST API
Stars: ✭ 201 (-20.87%)
Mutual labels:  ci, continuous-integration
Moderncppstarter
πŸš€ Kick-start your C++! A template for modern C++ projects using CMake, CI, code coverage, clang-format, reproducible dependency management and much more.
Stars: ✭ 2,381 (+837.4%)
Mutual labels:  ci, continuous-integration
Nevergreen
🐀 A build monitor with attitude
Stars: ✭ 170 (-33.07%)
Mutual labels:  ci, continuous-integration
Cml
♾️ CML - Continuous Machine Learning | CI/CD for ML
Stars: ✭ 2,843 (+1019.29%)
Mutual labels:  continuous-integration, ci
Lastbackend
System for containerized apps management. From build to scaling.
Stars: ✭ 1,536 (+504.72%)
Mutual labels:  ci, continuous-integration
Works On My Machine
Continuous integration done right.
Stars: ✭ 215 (-15.35%)
Mutual labels:  ci, continuous-integration
Rocket
Automated software delivery as fast and easy as possible πŸš€
Stars: ✭ 217 (-14.57%)
Mutual labels:  ci, continuous-integration
Awesome Ci
List of Continuous Integration services
Stars: ✭ 2,737 (+977.56%)
Mutual labels:  ci, continuous-integration
Ci Detector
Detect continuous integration environment and get information of current build
Stars: ✭ 138 (-45.67%)
Mutual labels:  ci, continuous-integration
Build
Netlify Build runs the build command, Build Plugins and bundles Netlify Functions.
Stars: ✭ 135 (-46.85%)
Mutual labels:  ci, continuous-integration
Legacy Old Hercules
Abandoned
Stars: ✭ 174 (-31.5%)
Mutual labels:  ci, continuous-integration
Taskcluster
CI for Engineers
Stars: ✭ 126 (-50.39%)
Mutual labels:  ci, continuous-integration
Hands On Devops
A hands-on DevOps course covering the culture, methods and repeated practices of modern software development involving Packer, Vagrant, VirtualBox, Ansible, Kubernetes, K3s, MetalLB, Traefik, Docker-Compose, Docker, Taiga, GitLab, Drone CI, SonarQube, Selenium, InSpec, Alpine 3.10, Ubuntu-bionic, CentOS 7...
Stars: ✭ 196 (-22.83%)
Mutual labels:  continuous-integration, docker-image
Rok8s Scripts
Opinionated scripts for managing application deployment lifecycle in Kubernetes
Stars: ✭ 248 (-2.36%)
Mutual labels:  ci, continuous-integration
Flint
Fast and configurable filesystem (file and directory names) linter
Stars: ✭ 115 (-54.72%)
Mutual labels:  ci, continuous-integration
Kontinuous
The Kubernetes Continuous Integration & Delivery Platform (CI/CD) πŸ”„
Stars: ✭ 115 (-54.72%)
Mutual labels:  ci, continuous-integration
Werf
The CLI tool gluing Git, Docker, Helm, and Kubernetes with any CI system to implement CI/CD and Giterminism
Stars: ✭ 2,814 (+1007.87%)
Mutual labels:  continuous-integration, docker-image

awesome-ci

Build Status Latest Stable Version Total Downloads Docker image License

All #awesome-ci Docker images

ansible β€’ ansible-lint β€’ awesome-ci β€’ black β€’ checkmake β€’ eslint β€’ file-lint β€’ gofmt β€’ golint β€’ jsonlint β€’ phpcs β€’ pycodestyle β€’ pylint β€’ terraform-docs β€’ terragrunt β€’ yamllint

All #awesome-ci Makefiles

Visit cytopia/makefiles for seamless project integration, minimum required best-practice code linting and CI.

Docker image

Runs on

Linux FreeBSD OSX

Continuous Integration command line tools for git repositories, file characteristics, syntax errors and static source code analysis.

Awesome-CI is capable of finding various problems in your code repository as well as fixing them automatically.


Table of Contents

  1. Tools
  2. Learn / Validate
  3. Fix
  4. Custom regex contributions
  5. General usage
  6. Installation
    1. Requirements
    2. Install OSX
    3. Install Linux/BSD
  7. Awesome CI Docker image
  8. Documentation
  9. License

Tools

All checks have the option to only check by one or more file extensions, by shebang as well as to exclude one or more folders from the whole search.

Note: Fixable options are currently in testing phase. Please report any bugs.

Type Tool Fixable Description
Git git-conflicts Scan files and check if they contain git conflicts.
Git git-ignored Scan git directory and see if ignored files are still in git cache.
File file-cr βœ“ Scan files and check if they contain CR (Carriage Return only).
File file-crlf βœ“ Scan files and check if they contain CRLF (Windows Line Feeds).
File file-empty Scan files and check if they are empty (0 bytes).
File file-nullbyte-char βœ“ Scan files and check if they contain a null-byte character (\x00).
File file-trailing-newline βœ“ Scan files and check if they contain a trailing newline.
File file-trailing-single-newline βœ“ Scan files and check if they contain exactly one trailing newline.
File file-trailing-space βœ“ Scan files and check if they contain trailing whitespaces.
File file-utf8 βœ“ Scan files and check if they have a non UTF-8 encoding.
File file-utf8-bom βœ“ Scan files and check if they contain BOM (Byte Order Mark): <U+FEFF>.
Syntax syntax-bash Scan shell files for bash syntax errors.
Syntax syntax-css Scan CSS files for CSS syntax errors.
Syntax syntax-js Scan JS files for JS syntax errors.
Syntax syntax-json Scan files for JSON syntax errors.
Syntax syntax-markdown Scan files for Markdown syntax errors.
Syntax syntax-perl Scan Perl files for Perl syntax errors.
Syntax syntax-php Scan files for PHP syntax errors.
Syntax syntax-python Scan Python files for Python syntax errors.
Syntax syntax-ruby Scan Ruby files for Ruby syntax errors.
Syntax syntax-scss Scan SCSS files for SCSS syntax errors.
Syntax syntax-sh Scan shell files for /bin/sh syntax errors.
Code Conventions inline-css Scan files and check if they contain inline css code.
Code Conventions inline-js Scan files and check if they contain inline javascript code.
Regex regex-grep egrep (grep -E) regex version to scan files for an occurance.
Regex regex-perl perl regex version to scan files for an occurance.

Learn / validate

All of the above scripts offer the --dry option which will only show you the built command without actually executing it:

$ 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

Some of the above scripts offer the --fix option (see table above), with which you are actually able to fix the problem. You can also combine it with --dry to see how the actual fix command looks like:

$ 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' --

Custom regex contributions

regex-grep and regex-perl have a lot of potential for doing custom project validation.

In order to give you an idea, have a look at the compiled Regex Contributions.

Please use pull requests to add useful checks.

General Usage

  • All tools share the same pattern (except git-ignored) and can be used with the same command line arguments.
  • Some tools have an additional option --custom="" to overwrite the command itself (this is explained and shown in detail in each command's --help option).

Options:

# 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

Installation

Requirements

Awesome-ci requires the following tools to be installed:

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

Install OSX

brew tap cytopia/tap
brew install awesome-ci

Install 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

Awesome CI Docker image

Docker image

Instead of installing awesome-ci and all its required dependencies locally on your computer, you can also use the bundled Docker image cytopia/awesome-ci which has everything pre-installed and is built nightly by travis-ci.

docker run -v ${PWD}:/ac cytopia/awesome-ci file-crlf --path=/ac

The above example is using file-crlf to scan the current directory for files containing Windows newlines:

  • ${PWD} (the current host directory) is mounted into the container's /ac directoy
  • file-crlf path then points (inside the container) to /ac (which is the current host directory)
  • /ac can actually be named by whatever name you want

If you use an awesome-ci configuration which is not inside the directory you want to check, you will also have to mount that into the container:

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

Documentation

To find out more about awesome-ci, have a look at the following links.

License

MIT License

Copyright (c) 2018 cytopia

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].