Semaphore/CONTRIBUTING.md
2017-03-09 00:28:55 +09:00

1.8 KiB

Pull Requests

When creating a pull-request you should:

  • Open an issue first: Confirm that the change or feature will be accepted
  • gofmt and vet the code: Use gofmt, golint, govet and goimports to clean up your code.
  • Update api documentation: If your pull-request adding/modifying an API request, make sure you update the swagger documentation (api-docs.yml)

Installation in a development environment

  • Install Go
  • Install MySQL / MariaDB
  • Install node.js
  1. Set up GOPATH, GOBIN and Workspace
cd {WORKING_DIRECTORY}
export GOPATH=`pwd`
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

mkdir -p $GOPATH/src/github.com/ansible-semaphore && cd $GOPATH/src/github.com/ansible-semaphore
  1. Clone semaphore (with submodules)
git clone --recursive git@github.com:ansible-semaphore/semaphore.git && cd semaphore
  1. Install dev dependencies
go get ./... github.com/cespare/reflex github.com/jteeuwen/go-bindata/... github.com/mitchellh/gox
npm install async
npm install -g nodemon pug-cli less
  1. Set up config, database & run migrations
cat <<EOT >> config.json
{
    "mysql": {
        "host": "127.0.0.1:3306",
        "user": "root",
        "pass": "",
        "name": "semaphore"
    },
    "port": ":3000"
}
EOT

echo "create database semaphore;" | mysql -uroot -p
go-bindata -debug -o util/bindata.go -pkg util config.json db/migrations/ $(find public/* -type d -print)
go run cli/main.go -config ./config.json -migrate

Now it's ready to start.. Run ./make.sh watch

  • Watches js files in public/js/* and compiles into a bundle
  • Watches css files in public/css/* and compiles into css code
  • Watches pug files in public/html/* and compiles them into html
  • Watches go files and recompiles the binary
  • Open localhost:3000