Merge pull request #53 from jfrazelle/makefile-ci
add dockerfile/makefile additions for ci
This commit is contained in:
commit
9d1464e72f
2 changed files with 73 additions and 9 deletions
29
Dockerfile
Normal file
29
Dockerfile
Normal file
|
@ -0,0 +1,29 @@
|
|||
FROM debian:jessie
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
curl \
|
||||
git \
|
||||
make \
|
||||
--no-install-recommends \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install Go
|
||||
ENV GO_VERSION 1.5.2
|
||||
RUN curl -sSL "https://storage.googleapis.com/golang/go${GO_VERSION}.linux-amd64.tar.gz" | tar -v -C /usr/local -xz
|
||||
ENV PATH /go/bin:/usr/local/go/bin:$PATH
|
||||
ENV GOPATH /go:/go/src/github.com/docker/containerd/vendor
|
||||
|
||||
# install golint/vet
|
||||
RUN go get github.com/golang/lint/golint \
|
||||
&& go get golang.org/x/tools/cmd/vet
|
||||
|
||||
COPY . /go/src/github.com/docker/containerd
|
||||
|
||||
# get deps, until they are in vendor
|
||||
# TODO: remomve this when there is a dep tool
|
||||
RUN go get -d -v github.com/docker/containerd/ctr \
|
||||
&& go get -d -v github.com/docker/containerd/containerd
|
||||
|
||||
WORKDIR /go/src/github.com/docker/containerd
|
53
Makefile
53
Makefile
|
@ -1,21 +1,56 @@
|
|||
|
||||
BUILDTAGS=libcontainer
|
||||
|
||||
all:
|
||||
# if this session isn't interactive, then we don't want to allocate a
|
||||
# TTY, which would fail, but if it is interactive, we do want to attach
|
||||
# so that the user can send e.g. ^C through.
|
||||
INTERACTIVE := $(shell [ -t 0 ] && echo 1 || echo 0)
|
||||
ifeq ($(INTERACTIVE), 1)
|
||||
DOCKER_FLAGS += -t
|
||||
endif
|
||||
|
||||
DOCKER_IMAGE := containerd-dev$(if $(GIT_BRANCH),:$(GIT_BRANCH))
|
||||
DOCKER_RUN := docker run --rm -i $(DOCKER_FLAGS) "$(DOCKER_IMAGE)"
|
||||
|
||||
|
||||
all: client daemon
|
||||
|
||||
bin:
|
||||
mkdir -p bin/
|
||||
cd containerd && go build -tags "$(BUILDTAGS)" -o ../bin/containerd
|
||||
|
||||
clean:
|
||||
rm -rf bin
|
||||
|
||||
client: bin
|
||||
cd ctr && go build -o ../bin/ctr
|
||||
|
||||
client:
|
||||
mkdir -p bin/
|
||||
cd ctr && go build -o ../bin/ctr
|
||||
|
||||
daemon:
|
||||
mkdir -p bin/
|
||||
daemon: bin
|
||||
cd containerd && go build -tags "$(BUILDTAGS)" -o ../bin/containerd
|
||||
|
||||
dbuild:
|
||||
@docker build --rm --force-rm -t "$(DOCKER_IMAGE)" .
|
||||
|
||||
dtest: dbuild
|
||||
$(DOCKER_RUN) make test
|
||||
|
||||
install:
|
||||
cp bin/* /usr/local/bin/
|
||||
|
||||
protoc:
|
||||
protoc -I ./api/grpc/types ./api/grpc/types/api.proto --go_out=plugins=grpc:api/grpc/types
|
||||
|
||||
fmt:
|
||||
@gofmt -s -l . | grep -v vendor | grep -v .pb. | tee /dev/stderr
|
||||
|
||||
lint:
|
||||
@golint ./... | grep -v vendor | grep -v .pb. | tee /dev/stderr
|
||||
|
||||
shell:
|
||||
$(DOCKER_RUN) bash
|
||||
|
||||
test: all validate
|
||||
go test -v $(shell go list ./... | grep -v /vendor)
|
||||
|
||||
validate: fmt lint vet
|
||||
|
||||
vet:
|
||||
go vet $(shell go list ./... | grep -v vendor)
|
||||
|
|
Loading…
Reference in a new issue