51 lines
1.8 KiB
Bash
51 lines
1.8 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
set -xe
|
||
|
|
||
|
SRC_DIR="${SRC_DIR:-$PWD}"
|
||
|
|
||
|
FEDORA_INSTALL="dnf install -y golang tar xz bzip2 gzip sudo iproute wget"
|
||
|
FEDORA_IMAGE="docker://fedora:23"
|
||
|
ACBUILD_URL="https://github.com/appc/acbuild/releases/download/v0.2.2/acbuild.tar.gz"
|
||
|
ACBUILD="acbuild --debug"
|
||
|
BUILDFLAGS="-a --ldflags '-extldflags \"-static\"'"
|
||
|
|
||
|
TAG=$(git describe --exact-match --abbrev=0) || TAG=$(git describe)
|
||
|
RELEASE_DIR=release-${TAG}
|
||
|
OUTPUT_DIR=bin
|
||
|
|
||
|
rm -Rf ${SRC_DIR}/${RELEASE_DIR}
|
||
|
mkdir -p ${SRC_DIR}/${RELEASE_DIR}
|
||
|
|
||
|
sudo -E rkt run \
|
||
|
--volume rslvconf,kind=host,source=/etc/resolv.conf \
|
||
|
--mount volume=rslvconf,target=/etc/resolv.conf \
|
||
|
--volume src-dir,kind=host,source=$SRC_DIR \
|
||
|
--mount volume=src-dir,target=/opt/src \
|
||
|
--interactive \
|
||
|
--insecure-options=image \
|
||
|
${FEDORA_IMAGE} \
|
||
|
--exec /bin/bash \
|
||
|
-- -xe -c "\
|
||
|
${FEDORA_INSTALL}; cd /opt/src; umask 0022;
|
||
|
for arch in amd64 arm arm64 ppc64le; do \
|
||
|
CGO_ENABLED=0 GOARCH=\$arch ./build ${BUILDFLAGS}; \
|
||
|
for format in txz tbz2 tgz; do \
|
||
|
FILENAME=cni-\$arch-${TAG}.\$format; \
|
||
|
FILEPATH=${RELEASE_DIR}/\$FILENAME; \
|
||
|
tar -C ${OUTPUT_DIR} --owner=0 --group=0 -caf \$FILEPATH .; \
|
||
|
if [ \"\$arch\" == \"amd64\" ]; then \
|
||
|
cp \$FILEPATH ${RELEASE_DIR}/cni-${TAG}.\$format; \
|
||
|
fi; \
|
||
|
done; \
|
||
|
done; \
|
||
|
wget -O - ${ACBUILD_URL} | tar -C /usr/bin -xzvf -; \
|
||
|
${ACBUILD} begin; \
|
||
|
${ACBUILD} set-name coreos.com/cni; \
|
||
|
${ACBUILD} label add version ${TAG}; \
|
||
|
${ACBUILD} copy --to-dir ${OUTPUT_DIR} /opt/cni/; \
|
||
|
${ACBUILD} write ${RELEASE_DIR}/cni-${TAG}.aci; \
|
||
|
${ACBUILD} end; \
|
||
|
pushd ${RELEASE_DIR}; for f in \$(ls); do sha1sum \$f > \$f.sha1; done; popd; \
|
||
|
chown -R ${UID} ${OUTPUT_DIR} ${RELEASE_DIR}; \
|
||
|
:"
|