diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..933eac61a --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,11 @@ +version: 2 + +jobs: + build: + docker: + - image: circleci/golang:1.12 + steps: + - checkout + - run: + name: Verify + command: make precommit diff --git a/.gitignore b/.gitignore index e69de29bb..d0d16ba71 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +.tools diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..3520a754a --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +# All documents to be used in spell check. +ALL_DOCS := $(shell find . -name '*.md' -type f | sort) + +TOOLS_DIR := ./.tools +MISSPELL_BINARY=$(TOOLS_DIR)/misspell + +.PHONY: precommit +precommit: install-misspell misspell + +.PHONY: install-misspell +install-misspell: go.mod go.sum internal/tools.go + go build -o $(MISSPELL_BINARY) github.com/client9/misspell/cmd/misspell + +.PHONY: misspell +misspell: + $(MISSPELL_BINARY) -error $(ALL_DOCS) + +.PHONY: misspell-correction +misspell-correction: + $(MISSPELL_BINARY) -w $(ALL_DOCS) + diff --git a/go.mod b/go.mod new file mode 100644 index 000000000..6825a9cce --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module github.com/open-telemetry/rfcs + +go 1.12 + +require github.com/client9/misspell v0.3.4 diff --git a/go.sum b/go.sum new file mode 100644 index 000000000..ee5948021 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= diff --git a/internal/tools.go b/internal/tools.go new file mode 100644 index 000000000..239c89ea5 --- /dev/null +++ b/internal/tools.go @@ -0,0 +1,27 @@ +// Copyright 2019, OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +// +build tools + +package internal + +// This file follows the recommendation at +// https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module +// on how to pin tooling dependencies to a go.mod file. +// This ensures that all systems use the same version of tools in addition to regular dependencies. + +import ( + _ "github.com/client9/misspell/cmd/misspell" +)