diff --git a/test/build-utils.sh b/test/build-utils.sh new file mode 100755 index 000000000..0f859d2b7 --- /dev/null +++ b/test/build-utils.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# Copyright The containerd 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. + +ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/.. + +# PROJECT is the gce project to upload tarball. +PROJECT=${PROJECT:-"k8s-cri-containerd"} + +# GOOGLE_APPLICATION_CREDENTIALS is the path of service account file. +if [ -z ${GOOGLE_APPLICATION_CREDENTIALS} ]; then + echo "GOOGLE_APPLICATION_CREDENTIALS is not set" + exit 1 +fi + +# Activate gcloud service account. +gcloud auth activate-service-account --key-file "${GOOGLE_APPLICATION_CREDENTIALS}" --project="${PROJECT}" + +# Install dependent libraries. +apt-get update +if apt-cache show libbtrfs-dev > /dev/null; then + apt-get install -y libbtrfs-dev +else + apt-get install -y btrfs-tools +fi + +# Kubernetes test infra uses jessie and stretch. +if cat /etc/os-release | grep jessie; then + sh -c "echo 'deb http://ftp.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/backports.list" + apt-get update + apt-get install -y libseccomp2/jessie-backports + apt-get install -y libseccomp-dev/jessie-backports +else + apt-get install -y libseccomp2 + apt-get install -y libseccomp-dev +fi + +# PULL_REFS is from prow. +if [ ! -z "${PULL_REFS:-""}" ]; then + DEPLOY_DIR=$(echo "${PULL_REFS}" | sha1sum | awk '{print $1}') +fi diff --git a/test/build.sh b/test/build.sh new file mode 100755 index 000000000..0eac308b7 --- /dev/null +++ b/test/build.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# Copyright The containerd 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. + +# This script is used to build and upload containerd with latest CRI plugin +# from containerd/cri in gcr.io/k8s-testimages/kubekins-e2e. + +set -o xtrace +set -o errexit +set -o nounset +set -o pipefail + +source $(dirname "${BASH_SOURCE[0]}")/build-utils.sh +cd "${ROOT}" + +# Make sure output directory is very clean. +make clean +make build +make binaries + +# Build and push test tarball. +# TODO: mikebrow need to build/push a release tar similarly to: +# https://github.com/containerd/containerd/blob/master/.github/workflows/release.yml +# old script: +# PUSH_VERSION=true DEPLOY_DIR=${DEPLOY_DIR:-""} \ +# make push TARBALL_PREFIX=cri-containerd-cni INCLUDE_CNI=true CUSTOM_CONTAINERD=true