mirror of
https://github.com/rancher/os.git
synced 2025-06-28 15:56:58 +00:00
Speed up build and run tests
This commit is contained in:
parent
dd7b2554e7
commit
d34ead2fbf
@ -4,6 +4,7 @@ bin
|
|||||||
state
|
state
|
||||||
build
|
build
|
||||||
images/*/build
|
images/*/build
|
||||||
|
scripts/images/*/dist/
|
||||||
dist
|
dist
|
||||||
tests/integration/.venv*
|
tests/integration/.venv*
|
||||||
tests/integration/.tox
|
tests/integration/.tox
|
||||||
|
@ -28,6 +28,7 @@ RUN apt-get update && \
|
|||||||
wget \
|
wget \
|
||||||
xorriso
|
xorriso
|
||||||
|
|
||||||
|
ENV DAPPER_ENV VERSION DEV_BUILD
|
||||||
ENV DAPPER_DOCKER_SOCKET true
|
ENV DAPPER_DOCKER_SOCKET true
|
||||||
ENV DAPPER_SOURCE /go/src/github.com/rancher/os
|
ENV DAPPER_SOURCE /go/src/github.com/rancher/os
|
||||||
ENV DAPPER_OUTPUT ./bin ./dist ./build/initrd
|
ENV DAPPER_OUTPUT ./bin ./dist ./build/initrd
|
||||||
@ -99,10 +100,12 @@ RUN if [ -n "${!VBOX_MODULES_URL}" ]; then \
|
|||||||
;fi
|
;fi
|
||||||
|
|
||||||
# Install Go
|
# Install Go
|
||||||
|
ENV GO_VERSION 1.6.2
|
||||||
RUN ln -sf go-6 /usr/bin/go && \
|
RUN ln -sf go-6 /usr/bin/go && \
|
||||||
curl -sfL https://storage.googleapis.com/golang/go1.6.src.tar.gz | tar -xzf - -C /usr/local && \
|
curl -sfL https://storage.googleapis.com/golang/go${GO_VERSION}.src.tar.gz | tar -xzf - -C /usr/local && \
|
||||||
cd /usr/local/go/src && \
|
cd /usr/local/go/src && \
|
||||||
GOROOT_BOOTSTRAP=/usr GOARCH=${HOST_ARCH} GOHOSTARCH=${HOST_ARCH} ./make.bash
|
GOROOT_BOOTSTRAP=/usr GOARCH=${HOST_ARCH} GOHOSTARCH=${HOST_ARCH} ./make.bash && \
|
||||||
|
rm /usr/bin/go
|
||||||
ENV GOPATH /go
|
ENV GOPATH /go
|
||||||
ENV PATH ${GOPATH}/bin:/usr/local/go/bin:$PATH
|
ENV PATH ${GOPATH}/bin:/usr/local/go/bin:$PATH
|
||||||
|
|
||||||
|
7
Makefile
7
Makefile
@ -1,4 +1,4 @@
|
|||||||
TARGETS := $(shell ls scripts | grep -vE 'clean|run')
|
TARGETS := $(shell ls scripts | grep -vE 'clean|run|help')
|
||||||
|
|
||||||
.dapper:
|
.dapper:
|
||||||
@echo Downloading dapper
|
@echo Downloading dapper
|
||||||
@ -28,6 +28,9 @@ run: build/initrd/.id
|
|||||||
clean:
|
clean:
|
||||||
@./scripts/clean
|
@./scripts/clean
|
||||||
|
|
||||||
.DEFAULT_GOAL := ci
|
help:
|
||||||
|
@./scripts/help
|
||||||
|
|
||||||
|
.DEFAULT_GOAL := default
|
||||||
|
|
||||||
.PHONY: $(TARGETS)
|
.PHONY: $(TARGETS)
|
||||||
|
7
scripts/default
Executable file
7
scripts/default
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cd $(dirname $0)
|
||||||
|
|
||||||
|
./build
|
||||||
|
./prepare
|
||||||
|
./package
|
8
scripts/dev
Executable file
8
scripts/dev
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# help: For development, creates iso, kernel, initrd gzip compressed
|
||||||
|
|
||||||
|
cd $(dirname $0)
|
||||||
|
|
||||||
|
./build
|
||||||
|
./prepare
|
||||||
|
COMPRESS="gzip -1" ROOTFS=0 ./package
|
16
scripts/help
Executable file
16
scripts/help
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cd $(dirname $0)
|
||||||
|
|
||||||
|
echo Targets:
|
||||||
|
|
||||||
|
for i in *; do
|
||||||
|
if [ ! -x $i ] || [ ! -f $i ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
MSG=$(grep '^# help:' $i)
|
||||||
|
if [ -n "$MSG" ]; then
|
||||||
|
echo " " ${i}: $(echo $MSG | sed 's/# help://')
|
||||||
|
fi
|
||||||
|
done
|
11
scripts/integration-test
Executable file
11
scripts/integration-test
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# help: Run Python based integration tests
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cd $(dirname $0)/../tests/integration
|
||||||
|
|
||||||
|
if [ ! -e ../../dist/artifacts/initrd ]; then
|
||||||
|
../../scripts/dev
|
||||||
|
fi
|
||||||
|
|
||||||
|
tox "$@"
|
@ -3,6 +3,8 @@ set -e
|
|||||||
|
|
||||||
cd $(dirname $0)
|
cd $(dirname $0)
|
||||||
|
|
||||||
|
if [ "$ROOTFS" != "0" ]; then
|
||||||
./package-rootfs
|
./package-rootfs
|
||||||
|
fi
|
||||||
./package-initrd
|
./package-initrd
|
||||||
./package-iso
|
./package-iso
|
||||||
|
@ -1,41 +1,21 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
rootfs() {
|
|
||||||
DFS=$(docker run -d --privileged -v /lib/modules/$(uname -r):/lib/modules/$(uname -r) ${DFS_IMAGE}${SUFFIX})
|
|
||||||
trap "docker rm -fv ${DFS_ARCH} ${DFS}" EXIT
|
|
||||||
docker exec -i ${DFS} docker load < ${INITRD_DIR}/usr/share/ros/images.tar
|
|
||||||
docker stop ${DFS}
|
|
||||||
docker run --rm --volumes-from=${DFS} rancher/os-dapper-base tar -c -C /var/lib/docker ./image | tar -x -C ${PREPOP_DIR}
|
|
||||||
docker run --rm --volumes-from=${DFS} rancher/os-dapper-base tar -c -C /var/lib/docker ./overlay | tar -x -C ${PREPOP_DIR}
|
|
||||||
|
|
||||||
tar -cf ${ARTIFACTS}/rootfs.tar --exclude lib/modules --exclude lib/firmware -C ${INITRD_DIR} .
|
|
||||||
tar -rf ${ARTIFACTS}/rootfs.tar --exclude lib/modules --exclude lib/firmware -C ${INITRD_DIR} .
|
|
||||||
rm -f ${ARTIFACTS}/rootfs.tar.gz
|
|
||||||
gzip ${ARTIFACTS}/rootfs.tar
|
|
||||||
}
|
|
||||||
|
|
||||||
initrd() {
|
|
||||||
COMPRESS=lzma
|
|
||||||
[ "$DEV_BUILD" == "1" ] && COMPRESS="gzip -1"
|
|
||||||
|
|
||||||
pushd ${INITRD_DIR} >/dev/null
|
|
||||||
|
|
||||||
find | cpio -H newc -o | ${COMPRESS} > ${INITRD}
|
|
||||||
|
|
||||||
popd >/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
cd $(dirname $0)/..
|
cd $(dirname $0)/..
|
||||||
|
|
||||||
BUILD=$(pwd)/build
|
BUILD=$(pwd)/build
|
||||||
IMAGE_CACHE=${BUILD}/image-cache
|
|
||||||
PREPOP_DIR=${IMAGE_CACHE}/var/lib/system-docker
|
|
||||||
INITRD_DIR=${BUILD}/initrd
|
INITRD_DIR=${BUILD}/initrd
|
||||||
ARTIFACTS=$(pwd)/dist/artifacts
|
ARTIFACTS=$(pwd)/dist/artifacts
|
||||||
INITRD=${ARTIFACTS}/initrd
|
INITRD=${ARTIFACTS}/initrd
|
||||||
|
|
||||||
mkdir -p ${ARTIFACTS} ${PREPOP_DIR}
|
mkdir -p ${ARTIFACTS}
|
||||||
|
|
||||||
rootfs
|
if [ "$COMPRESS" == "" ]; then
|
||||||
initrd
|
COMPRESS=lzma
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ${INITRD_DIR}
|
||||||
|
|
||||||
|
echo Creating ${INITRD}
|
||||||
|
find | cpio -H newc -o | ${COMPRESS} > ${INITRD}
|
||||||
|
echo Done creating ${INITRD}
|
||||||
|
@ -1,31 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
rootfs() {
|
|
||||||
DFS=$(docker run -d --privileged -v /lib/modules/$(uname -r):/lib/modules/$(uname -r) ${DFS_IMAGE}${SUFFIX})
|
|
||||||
trap "docker rm -fv ${DFS_ARCH} ${DFS}" EXIT
|
|
||||||
docker exec -i ${DFS} docker load < ${INITRD_DIR}/usr/share/ros/images.tar
|
|
||||||
docker stop ${DFS}
|
|
||||||
docker run --rm --volumes-from=${DFS} rancher/os-dapper-base tar -c -C /var/lib/docker ./image | tar -x -C ${PREPOP_DIR}
|
|
||||||
docker run --rm --volumes-from=${DFS} rancher/os-dapper-base tar -c -C /var/lib/docker ./overlay | tar -x -C ${PREPOP_DIR}
|
|
||||||
|
|
||||||
tar -cf ${ARTIFACTS}/rootfs.tar --exclude lib/modules --exclude lib/firmware -C ${INITRD_DIR} .
|
|
||||||
tar -rf ${ARTIFACTS}/rootfs.tar --exclude lib/modules --exclude lib/firmware -C ${INITRD_DIR} .
|
|
||||||
rm -f ${ARTIFACTS}/rootfs.tar.gz
|
|
||||||
gzip ${ARTIFACTS}/rootfs.tar
|
|
||||||
}
|
|
||||||
|
|
||||||
initrd() {
|
|
||||||
COMPRESS=lzma
|
|
||||||
[ "$DEV_BUILD" == "1" ] && COMPRESS="gzip -1"
|
|
||||||
|
|
||||||
pushd ${INITRD_DIR} >/dev/null
|
|
||||||
|
|
||||||
find | cpio -H newc -o | ${COMPRESS} > ${INITRD}
|
|
||||||
|
|
||||||
popd >/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
cd $(dirname $0)/..
|
cd $(dirname $0)/..
|
||||||
|
|
||||||
BUILD=$(pwd)/build
|
BUILD=$(pwd)/build
|
||||||
@ -37,5 +12,14 @@ INITRD=${ARTIFACTS}/initrd
|
|||||||
|
|
||||||
mkdir -p ${ARTIFACTS} ${PREPOP_DIR}
|
mkdir -p ${ARTIFACTS} ${PREPOP_DIR}
|
||||||
|
|
||||||
rootfs
|
DFS=$(docker run -d --privileged -v /lib/modules/$(uname -r):/lib/modules/$(uname -r) ${DFS_IMAGE}${SUFFIX})
|
||||||
initrd
|
trap "docker rm -fv ${DFS_ARCH} ${DFS}" EXIT
|
||||||
|
docker exec -i ${DFS} docker load < ${INITRD_DIR}/usr/share/ros/images.tar
|
||||||
|
docker stop ${DFS}
|
||||||
|
docker run --rm --volumes-from=${DFS} rancher/os-dapper-base tar -c -C /var/lib/docker ./image | tar -x -C ${PREPOP_DIR}
|
||||||
|
docker run --rm --volumes-from=${DFS} rancher/os-dapper-base tar -c -C /var/lib/docker ./overlay | tar -x -C ${PREPOP_DIR}
|
||||||
|
|
||||||
|
tar -cf ${ARTIFACTS}/rootfs.tar --exclude lib/modules --exclude lib/firmware -C ${INITRD_DIR} .
|
||||||
|
tar -rf ${ARTIFACTS}/rootfs.tar --exclude lib/modules --exclude lib/firmware -C ${INITRD_DIR} .
|
||||||
|
rm -f ${ARTIFACTS}/rootfs.tar.gz
|
||||||
|
gzip ${ARTIFACTS}/rootfs.tar
|
||||||
|
@ -5,7 +5,7 @@ source $(dirname $0)/version
|
|||||||
|
|
||||||
cd $(dirname $0)
|
cd $(dirname $0)
|
||||||
|
|
||||||
if [ ! -e ./bin/host_ros ]; then
|
if [ ! -e ../bin/host_ros ]; then
|
||||||
./build
|
./build
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
|
# help: build and run RancherOS, requires KVM local
|
||||||
|
|
||||||
cd $(dirname $0)/..
|
cd $(dirname $0)/..
|
||||||
|
|
||||||
@ -108,7 +109,7 @@ if [[ ! -e ${KERNEL} || ! -e ${INITRD_SRC} ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$REBUILD" == "1" ]; then
|
if [ "$REBUILD" == "1" ] || [ ! -e ${INITRD} ]; then
|
||||||
cp bin/ros ${INITRD_SRC}/usr/bin/ros
|
cp bin/ros ${INITRD_SRC}/usr/bin/ros
|
||||||
pushd ${INITRD_SRC} >/dev/null
|
pushd ${INITRD_SRC} >/dev/null
|
||||||
find . | cpio -H newc -o | gzip -1 > ${INITRD}
|
find . | cpio -H newc -o | gzip -1 > ${INITRD}
|
||||||
@ -157,6 +158,7 @@ if [ "$QEMU" == "1" ]; then
|
|||||||
CPU="-cpu host"
|
CPU="-cpu host"
|
||||||
fi
|
fi
|
||||||
set -x
|
set -x
|
||||||
|
HOME=${HOME:-/}
|
||||||
exec qemu-system-${QEMUARCH} -serial stdio \
|
exec qemu-system-${QEMUARCH} -serial stdio \
|
||||||
-rtc base=utc,clock=host \
|
-rtc base=utc,clock=host \
|
||||||
${KVM_ENABLE} \
|
${KVM_ENABLE} \
|
||||||
|
4
scripts/shell
Executable file
4
scripts/shell
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# help: Launch shell in build environment
|
||||||
|
|
||||||
|
exec bash
|
@ -1,4 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# help: Run go unit tests
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
cd $(dirname $0)/..
|
cd $(dirname $0)/..
|
||||||
|
@ -8,7 +8,7 @@ import time
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
ros_test = 'ros-test'
|
ros_test = 'ros-test'
|
||||||
arch = os.environ['ARCH']
|
arch = os.environ.get('ARCH', 'amd64')
|
||||||
|
|
||||||
suffix = ''
|
suffix = ''
|
||||||
if arch != 'amd64':
|
if arch != 'amd64':
|
||||||
|
Loading…
Reference in New Issue
Block a user