1
0
mirror of https://github.com/rancher/os.git synced 2025-07-07 03:48:38 +00:00

Merge pull request #969 from ibuildthecloud/scripts

More build script changes
This commit is contained in:
Darren Shepherd 2016-05-31 22:11:02 -07:00
commit 6fd0beda35
9 changed files with 43 additions and 16 deletions

View File

@ -10,3 +10,6 @@ tests/integration/.venv*
tests/integration/.tox
*/*/*/*.pyc
*/*/*/__pycache__
.trash-cache
.dapper
vendor/*/*/*/.git

3
.gitignore vendored
View File

@ -14,4 +14,5 @@
/tests/integration/.idea
*.pyc
__pycache__
.dapper
/.dapper
/.trash-cache

View File

@ -1,4 +1,5 @@
FROM ubuntu:16.04
# FROM arm64=aarch64/ubuntu:16.04 arm=armhf/ubuntu:16.04
RUN apt-get update && \
apt-get install -y \
@ -33,6 +34,7 @@ ENV DAPPER_DOCKER_SOCKET true
ENV DAPPER_SOURCE /go/src/github.com/rancher/os
ENV DAPPER_OUTPUT ./bin ./dist ./build/initrd
ENV DAPPER_RUN_ARGS --privileged
ENV TRASH_CACHE ${DAPPER_SOURCE}/.trash-cache
ENV SHELL /bin/bash
WORKDIR ${DAPPER_SOURCE}
@ -73,6 +75,7 @@ ARG OS_BASE_URL_arm=https://github.com/rancher/os-base/releases/download/v2016.0
######################################################
# Set up environment
ENV GOARCH $ARCH
ENV DOCKER_URL DOCKER_URL_${ARCH}
ENV KERNEL_URL KERNEL_URL_${ARCH}
ENV OS_BASE_URL OS_BASE_URL_${ARCH}
@ -120,6 +123,12 @@ RUN URL=DOCKER_URL_${HOST_ARCH} && \
# Install Docker
RUN curl -fL ${!DOCKER_URL} > ${DOWNLOADS}/docker && \
chmod +x ${DOWNLOADS}/docker
# Install Trash
RUN go get github.com/rancher/trash
# Install dapper
RUN curl -sL https://releases.rancher.com/dapper/latest/dapper-`uname -s`-`uname -m` > /usr/bin/dapper && \
chmod +x /usr/bin/dapper
# Install toolchain
RUN TOOLCHAIN=TOOLCHAIN_${ARCH} && \
@ -168,10 +177,6 @@ RUN source /usr/src/toolchain-env; if [ "${TOOLCHAIN}" != "" ]; then \
make install \
;fi
ENV GOARCH $ARCH
RUN curl -sL https://releases.rancher.com/dapper/latest/dapper-`uname -s`-`uname -m` > /usr/bin/dapper && \
chmod +x /usr/bin/dapper
RUN mkdir -p images/00-rootfs/build && \
curl -pfL ${!OS_BASE_URL} | tar xvJf - -C images/00-rootfs/build

View File

@ -25,6 +25,9 @@ run: build/initrd/.id
dapper -m bind build-target
./scripts/run
shell-bind:
dapper -m bind -s
clean:
@./scripts/clean

View File

@ -14,4 +14,5 @@ fi
OUTPUT=${OUTPUT:-bin/ros}
echo Building $OUTPUT
go build -tags netgo -installsuffix netgo -ldflags "-X github.com/rancher/os/config.VERSION=${VERSION} -linkmode external -extldflags -static" -o ${OUTPUT}
go build -tags "selinux cgo daemon netgo" -installsuffix netgo -ldflags "-X github.com/rancher/os/config.VERSION=${VERSION} -linkmode external -extldflags -static" -o ${OUTPUT}
strip --strip-all ${OUTPUT}

5
scripts/hash-initrd Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
cd $(dirname $0)/../build/initrd
md5sum $(find -type f | sort -u ) | md5sum - | awk '{print $1}' > .id

View File

@ -24,7 +24,19 @@ ln -s usr/sbin ${INITRD_DIR}/sbin
if [ -e ${DOWNLOADS}/kernel.tar.gz ]; then
tar xf ${DOWNLOADS}/kernel.tar.gz -C ${INITRD_DIR}/usr/ lib/
mkdir -p ${BUILD}/kernel
tar xf ${DOWNLOADS}/kernel.tar.gz -C ${BUILD}/kernel
if [ -e ${BUILD}/kernel/boot/vmlinuz-* ]; then
mkdir -p dist/artifacts
cp ${BUILD}/kernel/boot/vmlinuz-* dist/artifacts/vmlinuz
fi
if [ -d ${BUILD}/kernel/lib ]; then
rm -rf ${INITRD_DIR}/usr/lib
cp -rf ${BUILD}/kernel/lib ${INITRD_DIR}/usr/
depmod -b ${INITRD_DIR}/usr $(basename ${INITRD_DIR}/usr/lib/modules/*)
fi
fi
if [ -e ${DOWNLOADS}/policy.29 ]; then
@ -43,11 +55,4 @@ docker export ${DFS_ARCH} | tar xf - -C ${INITRD_DIR} --exclude=usr/bin/dockerla
--exclude=usr/libexec/git-core \
usr
tar xf ${DOWNLOADS}/kernel.tar.gz -C ${BUILD} boot/
if [ -e ${BUILD}/boot/vmlinuz-* ]; then
mkdir -p dist/artifacts
cp ${BUILD}/boot/vmlinuz-* dist/artifacts/vmlinuz
fi
cat /proc/sys/kernel/random/uuid > ${INITRD_DIR}/.id
./scripts/hash-initrd

View File

@ -111,6 +111,7 @@ fi
if [ "$REBUILD" == "1" ] || [ ! -e ${INITRD} ]; then
cp bin/ros ${INITRD_SRC}/usr/bin/ros
./scripts/hash-initrd
pushd ${INITRD_SRC} >/dev/null
find . | cpio -H newc -o | gzip -1 > ${INITRD}
popd >/dev/null

View File

@ -8,4 +8,7 @@ echo Running tests
PACKAGES=". $(find -name '*.go' | xargs -I{} dirname {} | cut -f2 -d/ | sort -u | grep -Ev '(^\.$|.git|.trash-cache|vendor|bin)' | sed -e 's!^!./!' -e 's!$!/...!')"
go test -race -cover -tags=test ${PACKAGES}
if [ "$ARCH" = "amd64" ]; then
RACE="-race"
fi
go test $RACE -cover -tags=test ${PACKAGES}