Add release tar.

Signed-off-by: Lantao Liu <lantaol@google.com>
This commit is contained in:
Lantao Liu 2017-09-04 04:22:11 +00:00
parent 59e75d8c5e
commit a6b0e41d6b
4 changed files with 73 additions and 11 deletions

View File

@ -29,12 +29,14 @@ jobs:
- make .gitvalidation - make .gitvalidation
- make verify - make verify
- make binaries - make binaries
- make release
go: 1.8.x go: 1.8.x
- script: - script:
- make install.tools - make install.tools
- make .gitvalidation - make .gitvalidation
- make verify - make verify
- make binaries - make binaries
- make release
go: tip go: tip
- stage: Test - stage: Test
script: script:

View File

@ -23,6 +23,7 @@ BUILD_DIR ?= _output
VERSION := $(shell git describe --tags --dirty) VERSION := $(shell git describe --tags --dirty)
# strip the first char of the tag if it's a `v` # strip the first char of the tag if it's a `v`
VERSION := $(VERSION:v%=%) VERSION := $(VERSION:v%=%)
TARBALL ?= cri-containerd-$(VERSION).tar.gz
BUILD_TAGS:= -ldflags '-X $(PROJECT)/pkg/version.criContainerdVersion=$(VERSION)' BUILD_TAGS:= -ldflags '-X $(PROJECT)/pkg/version.criContainerdVersion=$(VERSION)'
SOURCES := $(shell find . -name '*.go') SOURCES := $(shell find . -name '*.go')
@ -36,6 +37,7 @@ help:
@echo " * 'install' - Install binaries to system locations" @echo " * 'install' - Install binaries to system locations"
@echo " * 'binaries' - Build cri-containerd" @echo " * 'binaries' - Build cri-containerd"
@echo " * 'static-binaries - Build static cri-containerd" @echo " * 'static-binaries - Build static cri-containerd"
@echo " * 'release' - Build release tarball"
@echo " * 'test' - Test cri-containerd" @echo " * 'test' - Test cri-containerd"
@echo " * 'test-cri' - Test cri-containerd with cri validation test" @echo " * 'test-cri' - Test cri-containerd with cri validation test"
@echo " * 'test-e2e-node' - Test cri-containerd with Kubernetes node e2e test" @echo " * 'test-e2e-node' - Test cri-containerd with Kubernetes node e2e test"
@ -92,6 +94,11 @@ install: binaries
uninstall: uninstall:
rm -f $(BINDIR)/cri-containerd rm -f $(BINDIR)/cri-containerd
$(BUILD_DIR)/$(TARBALL): $(BUILD_DIR)/cri-containerd hack/versions
@BUILD_DIR=$(BUILD_DIR) TARBALL=$(TARBALL) ./hack/release.sh
release: $(BUILD_DIR)/$(TARBALL)
.PHONY: install.deps .PHONY: install.deps
install.deps: install.deps:
@ -121,6 +128,7 @@ install.tools: .install.gitvalidation .install.gometalinter
.PHONY: \ .PHONY: \
binaries \ binaries \
static-binaries \ static-binaries \
release \
boiler \ boiler \
clean \ clean \
default \ default \

View File

@ -30,10 +30,27 @@ set -o pipefail
ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/.. ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/..
. ${ROOT}/hack/versions . ${ROOT}/hack/versions
# DESTDIR is the dest path to install dependencies.
DESTDIR=${DESTDIR:-"/"}
# Convert to absolute path if it's relative.
if [[ ${DESTDIR} != /* ]]; then
DESTDIR=${ROOT}/${DESTDIR}
fi
# NOSUDO indicates not to use sudo during installation.
NOSUDO=${NOSUDO:-false}
sudo="sudo"
if ${NOSUDO}; then
sudo=""
fi
CONTAINERD_DIR=${DESTDIR}/usr/local
RUNC_DIR=${DESTDIR}
CNI_DIR=${DESTDIR}/opt/cni
CNI_CONFIG_DIR=${DESTDIR}/etc/cni/net.d
RUNC_PKG=github.com/opencontainers/runc RUNC_PKG=github.com/opencontainers/runc
CNI_PKG=github.com/containernetworking/plugins CNI_PKG=github.com/containernetworking/plugins
CNI_DIR=/opt/cni
CNI_CONFIG_DIR=/etc/cni/net.d
CONTAINERD_PKG=github.com/containerd/containerd CONTAINERD_PKG=github.com/containerd/containerd
# Check GOPATH # Check GOPATH
@ -52,8 +69,7 @@ git fetch --all
git checkout ${RUNC_VERSION} git checkout ${RUNC_VERSION}
BUILDTAGS=${BUILDTAGS:-seccomp apparmor} BUILDTAGS=${BUILDTAGS:-seccomp apparmor}
make BUILDTAGS="$BUILDTAGS" make BUILDTAGS="$BUILDTAGS"
sudo make install ${sudo} make install -e DESTDIR=${RUNC_DIR}
which runc
# Install cni # Install cni
go get -d ${CNI_PKG}/... go get -d ${CNI_PKG}/...
@ -61,10 +77,10 @@ cd ${GOPATH}/src/${CNI_PKG}
git fetch --all git fetch --all
git checkout ${CNI_VERSION} git checkout ${CNI_VERSION}
./build.sh ./build.sh
sudo mkdir -p ${CNI_DIR} ${sudo} mkdir -p ${CNI_DIR}
sudo cp -r ./bin ${CNI_DIR} ${sudo} cp -r ./bin ${CNI_DIR}
sudo mkdir -p ${CNI_CONFIG_DIR} ${sudo} mkdir -p ${CNI_CONFIG_DIR}
sudo bash -c 'cat >'${CNI_CONFIG_DIR}'/10-containerd-net.conflist <<EOF ${sudo} bash -c 'cat >'${CNI_CONFIG_DIR}'/10-containerd-net.conflist <<EOF
{ {
"cniVersion": "0.3.1", "cniVersion": "0.3.1",
"name": "containerd-net", "name": "containerd-net",
@ -96,6 +112,4 @@ cd ${GOPATH}/src/${CONTAINERD_PKG}
git fetch --all git fetch --all
git checkout ${CONTAINERD_VERSION} git checkout ${CONTAINERD_VERSION}
make make
sudo make install ${sudo} make install -e DESTDIR=${CONTAINERD_DIR}
which containerd
which containerd-shim

38
hack/release.sh Executable file
View File

@ -0,0 +1,38 @@
#!/bin/bash
# Copyright 2017 The Kubernetes 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.
set -o errexit
set -o nounset
set -o pipefail
ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/..
cd ${ROOT}
# BUILD_DIR is the directory to generate release tar.
# TARBALL is the name of the release tar.
BUILD_DIR=${BUILD_DIR:-"_output"}
TARBALL=${TARBALL:-"cri-containerd.tar.gz"}
destdir=${BUILD_DIR}/release-stage
# Install dependencies into release stage.
NOSUDO=true DESTDIR=${destdir} ./hack/install-deps.sh
# Install cri-containerd into release stage.
make install -e DESTDIR=${destdir}
# Create release tar
tar -zcvf ${BUILD_DIR}/${TARBALL} -C ${destdir} .