From a640bdb758df2171ddbcc64d781d988991193d73 Mon Sep 17 00:00:00 2001 From: Ivan Mikushin Date: Mon, 13 Jun 2016 16:33:07 -0700 Subject: [PATCH] Fix installer build --- scripts/installer/Dockerfile.amd64 | 6 ++++-- scripts/installer/Dockerfile.arm64 | 6 ++++-- scripts/installer/lay-down-os | 1 - scripts/integration-test | 2 ++ scripts/package-installer | 3 +-- .../integration/rostest/test_04_ros_install.py | 15 ++++++++++----- tests/integration/rostest/util.py | 18 +++++------------- tests/integration/tox.ini | 2 +- 8 files changed, 27 insertions(+), 26 deletions(-) diff --git a/scripts/installer/Dockerfile.amd64 b/scripts/installer/Dockerfile.amd64 index c41274c4..7358c3c9 100644 --- a/scripts/installer/Dockerfile.amd64 +++ b/scripts/installer/Dockerfile.amd64 @@ -2,9 +2,11 @@ FROM debian:jessie ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && apt-get install -y grub2 parted kexec-tools -COPY conf lay-down-os seed-data set-disk-partitions /scripts/installer/ -COPY ./build/build.conf /scripts/ +COPY conf lay-down-os seed-data set-disk-partitions /scripts/ COPY ./build/vmlinuz /dist/vmlinuz COPY ./build/initrd /dist/initrd +ARG VERSION +ENV VERSION=${VERSION} + ENTRYPOINT ["/scripts/lay-down-os"] diff --git a/scripts/installer/Dockerfile.arm64 b/scripts/installer/Dockerfile.arm64 index c6d36a35..9d902950 100644 --- a/scripts/installer/Dockerfile.arm64 +++ b/scripts/installer/Dockerfile.arm64 @@ -9,9 +9,11 @@ RUN mkdir -p /usr/local/src && \ git clone https://git.linaro.org/people/takahiro.akashi/kexec-tools.git && \ cd kexec-tools && git checkout kdump/for-14 && ./bootstrap && ./configure && make && make install -COPY conf lay-down-os seed-data set-disk-partitions /scripts/installer/ -COPY ./build/build.conf /scripts/ +COPY conf lay-down-os seed-data set-disk-partitions /scripts/ COPY ./build/vmlinuz /dist/vmlinuz COPY ./build/initrd /dist/initrd +ARG VERSION +ENV VERSION=${VERSION} + ENTRYPOINT ["/scripts/lay-down-os"] diff --git a/scripts/installer/lay-down-os b/scripts/installer/lay-down-os index 0cb74871..0ba35d44 100755 --- a/scripts/installer/lay-down-os +++ b/scripts/installer/lay-down-os @@ -3,7 +3,6 @@ set -e -x SCRIPTS_DIR=$(dirname ${0}) -. "${SCRIPTS_DIR}/build.conf" VERSION=${VERSION:?"VERSION not set"} while getopts "i:f:c:d:t:r:o:p:ka:" OPTION diff --git a/scripts/integration-test b/scripts/integration-test index 741803e7..d96b1961 100755 --- a/scripts/integration-test +++ b/scripts/integration-test @@ -2,6 +2,8 @@ # help: Run Python based integration tests set -e +source $(dirname $0)/version + cd $(dirname $0)/../tests/integration if [ ! -e ../../dist/artifacts/initrd ]; then diff --git a/scripts/package-installer b/scripts/package-installer index d8a11753..59da0d3f 100755 --- a/scripts/package-installer +++ b/scripts/package-installer @@ -14,9 +14,8 @@ fi mkdir -p ./scripts/installer/build cp ./dist/artifacts/{initrd,vmlinuz} ./scripts/installer/build -echo VERSION=$VERSION > ./scripts/installer/build/build.conf trap "rm -rf ./scripts/installer/build" EXIT -docker build -t ${OS_REPO}/os:${VERSION}${SUFFIX} -f $DOCKERFILE ./scripts/installer +docker build -t ${OS_REPO}/os:${VERSION}${SUFFIX} --build-arg VERSION=${VERSION} -f $DOCKERFILE ./scripts/installer echo ${OS_REPO}/os:${VERSION}${SUFFIX} > dist/images echo Built ${OS_REPO}/os:${VERSION}${SUFFIX} diff --git a/tests/integration/rostest/test_04_ros_install.py b/tests/integration/rostest/test_04_ros_install.py index 65b2a938..b51899d1 100644 --- a/tests/integration/rostest/test_04_ros_install.py +++ b/tests/integration/rostest/test_04_ros_install.py @@ -2,6 +2,7 @@ import subprocess import pytest import rostest.util as u +from rostest.util import SSH ssh_command = ['./scripts/ssh', '--qemu'] @@ -16,12 +17,16 @@ def qemu(request): @pytest.mark.timeout(40) def test_ros_install_on_formatted_disk(qemu): u.wait_for_ssh(qemu, ssh_command) - subprocess.check_call(ssh_command + ['sudo', 'mkfs.ext4', '/dev/vda'], - stderr=subprocess.STDOUT, universal_newlines=True) - subprocess.check_call(ssh_command + ['sudo', 'ros', 'install', '-f', '--no-reboot', '-d', '/dev/vda', - '-i', 'rancher/os:v0.4.4-dev' + u.suffix], - stderr=subprocess.STDOUT, universal_newlines=True) + subprocess.check_call( + ['sh', '-c', 'docker save rancher/os:%s%s | ./scripts/ssh sudo system-docker load' % (u.version, u.suffix)], + stderr=subprocess.STDOUT, universal_newlines=True) + + SSH(qemu, ssh_command).check_call(''' +set -e -x +sudo mkfs.ext4 /dev/vda +sudo ros install -f --no-reboot -d /dev/vda -i rancher/os:%s%s + '''.strip() % (u.version, u.suffix)) subprocess.call(ssh_command + ['sudo', 'reboot'], stderr=subprocess.STDOUT, universal_newlines=True) diff --git a/tests/integration/rostest/util.py b/tests/integration/rostest/util.py index 3d73ed56..2985bbb9 100644 --- a/tests/integration/rostest/util.py +++ b/tests/integration/rostest/util.py @@ -9,10 +9,12 @@ import pytest ros_test = 'ros-test' arch = os.environ.get('ARCH', 'amd64') +version = os.environ.get('VERSION') +suffix = os.environ.get('SUFFIX') -suffix = '' -if arch != 'amd64': - suffix = '_' + arch + +if version is None or version == '' or suffix is None: + raise RuntimeError("Could not get VERSION or SUFFIX from environment") def iter_lines(s): @@ -46,16 +48,6 @@ def with_effect(p): return effect -def rancheros_version(build_conf): - with open(build_conf) as f: - for v in it.ifilter(non_empty, - it.imap(parse_value('VERSION'), - it.ifilter(non_empty, - it.imap(strip_comment('#'), iter_lines(f))))): - return v - raise RuntimeError("Could not parse RancherOS version") - - def run_qemu(request, run_args=[]): print('\nStarting QEMU') p = subprocess.Popen(['./scripts/run', '--qemu', '--no-rebuild', '--no-rm-usr', '--fresh'] + run_args, diff --git a/tests/integration/tox.ini b/tests/integration/tox.ini index d78cbc47..bdd1de7f 100644 --- a/tests/integration/tox.ini +++ b/tests/integration/tox.ini @@ -4,7 +4,7 @@ skipsdist=True [testenv] deps=-rrequirements.txt -passenv=HOST_ARCH ARCH +passenv=HOST_ARCH ARCH VERSION SUFFIX commands=py.test -s --durations=20 rostest {posargs} [testenv:flake8]