barryz / Goci
Licence: apache-2.0
goci is a command-line tool for checking the code quality of Go locally.
Stars: ✭ 11
Programming Languages
go
31211 projects - #10 most used programming language
Labels
Projects that are alternatives of or similar to Goci
Toast
Containerize your development and continuous integration environments. 🥂
Stars: ✭ 748 (+6700%)
Mutual labels: ci
Ultima
An open source, Infrastructure-as-Code cloud platform with built-in CI and local development environment.
Stars: ✭ 18 (+63.64%)
Mutual labels: ci
Golang Ci Template Github Actions
example for golang project using github actions
Stars: ✭ 24 (+118.18%)
Mutual labels: ci
Apprepositorytemplate
The easiest way to start a new application project without any manual configuration
Stars: ✭ 24 (+118.18%)
Mutual labels: ci
Super Linter
Combination of multiple linters to install as a GitHub Action
Stars: ✭ 7,445 (+67581.82%)
Mutual labels: ci
Salty Whales
Extra ordinary Docker images for Salt. Whales love Salt.
Stars: ✭ 5 (-54.55%)
Mutual labels: ci
Orbital
Orbital is a self-hosted CI system for solo/small consulting dev teams. Written in Rust.
Stars: ✭ 22 (+100%)
Mutual labels: ci
Webhook
webhook is a lightweight incoming webhook server to run shell commands
Stars: ✭ 7,201 (+65363.64%)
Mutual labels: ci
Owasp Zap Glue Ci Images
Ready to use images of Zap and Glue, especially for CI integration.
Stars: ✭ 25 (+127.27%)
Mutual labels: ci
Captain
Captain - Convert your Git workflow to Docker 🐳 containers
Stars: ✭ 739 (+6618.18%)
Mutual labels: ci
Docker Jenkins
Jenkins with Blue Ocean and support for builiding jobs in Docker
Stars: ✭ 18 (+63.64%)
Mutual labels: ci
Gotesplit
Splits the testing in Go into a subset and run it. It is useful for the CI environment.
Stars: ✭ 23 (+109.09%)
Mutual labels: ci
goci is a CI linter for Go(lang) source code.
It supports:
-
build
project build -
gofmt
gofmt checking -
govet
code quality checking -
golint
code style checking -
test
go test or unit test -
race
race condition test
Requirements
- Go1.10.x
- Go1.11 (go module support)
Installation
$go get -u github.com/barryz/goci
Run
$goci -c goci.yml
or
$goci # use default configurations
Configuration
Create a file which named goci.yml
. This file should include fields as below:
fields | type | comment |
---|---|---|
build | string | Command or script that used for build project. Scripts should use the relative path. eg: ./ |
test | string | Command for testing |
excludes | array | The directories which in excludes will not be gofmt , golint or gover
|
race | struct | Execute race condition testing |
lint | struct | Configurations for golint
|
skips | array | Steps which to skipped |
race
struct fields
fields | type | comment |
---|---|---|
main | string | entry-point file for project, eg:main.go |
main_cmd | string | command for execution |
script | string | test script eg: sh race_test.sh |
timeout | int | timeout for race condition execution |
lint
struct fields
fields | type | comment |
---|---|---|
ignore_no_comment_error | bool | false(default) |
Example:
build: go build
test: go test
excludes:
- templates # except templates
- vendor # except vendor
race:
# go run -race main.go
main: ./main.go
# kill the above after 20 seconds
timeout: 20
# run this script to interact with the above running process (as a test)
script: ./ab.sh
# after 20 seconds, if no race detected, the goci/race passs
skips:
- fmt
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].