aboutsummaryrefslogtreecommitdiff
path: root/xenial-arm64-tcwg-base
diff options
context:
space:
mode:
authorRiku Voipio <riku.voipio@linaro.org>2017-04-07 10:24:30 +0300
committerFathi Boudra <fathi.boudra@linaro.org>2017-04-07 08:28:47 +0000
commitccf0784bfcff79d63513785f9dd7152995a8d10f (patch)
tree78a6e8fb7aee69bb0b6d049c388c30efead76ce5 /xenial-arm64-tcwg-base
parent8297f29b57d1237f782ab3f81206f9c57dd87d9a (diff)
dockerfiles: reorganize for recursive rebuilds
prerequisite for recursive rebuilds of images on changes. Use the command "tree" to make sense of the new layout: |-- ./trusty-amd64-tcwg-base | |-- ./trusty-amd64-tcwg-base/trusty-amd64-tcwg-build | `-- ./trusty-amd64-tcwg-base/trusty-amd64-tcwg-dev |-- ./trusty-arm64-tcwg-base | |-- ./trusty-arm64-tcwg-base/trusty-arm64-tcwg-build | | `-- ./trusty-arm64-tcwg-base/trusty-arm64-tcwg-build/trusty-arm64-tcwg-test | `-- ./trusty-arm64-tcwg-base/trusty-arm64-tcwg-dev |-- ./trusty-armhf-tcwg-base | `-- ./trusty-armhf-tcwg-base/trusty-armhf-tcwg-build | `-- ./trusty-armhf-tcwg-base/trusty-armhf-tcwg-build/trusty-armhf-tcwg-test |-- ./trusty-i386-tcwg-base | `-- ./trusty-i386-tcwg-base/trusty-i386-tcwg-build |-- ./xenial-amd64-tcwg-base | |-- ./xenial-amd64-tcwg-base/xenial-amd64-tcwg-build | `-- ./xenial-amd64-tcwg-base/xenial-amd64-tcwg-dev | `-- ./xenial-amd64-tcwg-base/xenial-amd64-tcwg-dev/xenial-amd64-tcwg-x2go |-- ./xenial-arm64-tcwg-base | |-- ./xenial-arm64-tcwg-base/xenial-arm64-tcwg-build | | `-- ./xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/xenial-arm64-tcwg-test | `-- ./xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev |-- ./xenial-armhf-tcwg-base | `-- ./xenial-armhf-tcwg-base/xenial-armhf-tcwg-build | `-- ./xenial-armhf-tcwg-base/xenial-armhf-tcwg-build/xenial-armhf-tcwg-test `-- ./xenial-i386-tcwg-base `-- ./xenial-i386-tcwg-base/xenial-i386-tcwg-build Notes: - ci-base- images are not handled here - relative paths in tcwg builds have been adjusted - tcwg jobs also build their parents recursively. This hasn't been touched in this commit, but we'll probably want to optimize the CI Change-Id: I3281c5c37d695040c4e0d7a1c13790a90f3ef3c2
Diffstat (limited to 'xenial-arm64-tcwg-base')
-rw-r--r--xenial-arm64-tcwg-base/build-depends.list2
l---------xenial-arm64-tcwg-base/build-depends.sh1
-rw-r--r--xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/Dockerfile24
-rwxr-xr-xxenial-arm64-tcwg-base/xenial-arm64-tcwg-build/build.sh22
-rw-r--r--xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/xenial-arm64-tcwg-test/Dockerfile7
-rwxr-xr-xxenial-arm64-tcwg-base/xenial-arm64-tcwg-build/xenial-arm64-tcwg-test/build.sh22
-rw-r--r--xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/Dockerfile46
-rwxr-xr-xxenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/build.sh26
8 files changed, 147 insertions, 3 deletions
diff --git a/xenial-arm64-tcwg-base/build-depends.list b/xenial-arm64-tcwg-base/build-depends.list
deleted file mode 100644
index ec5f23d7..00000000
--- a/xenial-arm64-tcwg-base/build-depends.list
+++ /dev/null
@@ -1,2 +0,0 @@
-xenial-arm64-tcwg-build
-xenial-arm64-tcwg-dev
diff --git a/xenial-arm64-tcwg-base/build-depends.sh b/xenial-arm64-tcwg-base/build-depends.sh
deleted file mode 120000
index ba9a1f9c..00000000
--- a/xenial-arm64-tcwg-base/build-depends.sh
+++ /dev/null
@@ -1 +0,0 @@
-../xenial-amd64-tcwg-base/build-depends.sh \ No newline at end of file
diff --git a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/Dockerfile b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/Dockerfile
new file mode 100644
index 00000000..c0ac5e70
--- /dev/null
+++ b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/Dockerfile
@@ -0,0 +1,24 @@
+FROM linaro/ci-arm64-tcwg-base-ubuntu:xenial
+
+RUN groupadd -g 9000 tcwg-infra \
+ && useradd -m -g tcwg-infra -u 11827 tcwg-buildslave \
+ && echo 'tcwg-buildslave ALL = NOPASSWD: ALL' > /etc/sudoers.d/jenkins \
+ && chmod 0440 /etc/sudoers.d/jenkins \
+ && mkdir -p /home/tcwg-buildslave/workspace
+
+COPY tcwg-buildslave /home/tcwg-buildslave
+RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
+ && chmod 0700 /home/tcwg-buildslave/.ssh/
+
+# Unfortunately, VOLUME doesn't support bind-mounts for portability reasons.
+# Therefore, the bind-mounts for the following paths are configured in
+# the ci.linaro.org's docker plugin.
+# Sources caches (read-only):
+# /home/tcwg-buildslave/snapshots-ref:/home/tcwg-buildslave/snapshots-ref:ro
+# Jenkins .jar cache (read-write):
+# /home/tcwg-buildslave/.jenkins:/home/tcwg-buildslave/.jenkins:rw
+
+# We write most of the data inside workspace, so make it a scratch mount.
+# Note that bind-mounting workspace from host will make jobs with parallel
+# builds fail.
+VOLUME /home/tcwg-buildslave/workspace
diff --git a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/build.sh b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/build.sh
new file mode 100755
index 00000000..8926d874
--- /dev/null
+++ b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/build.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+
+trap cleanup_exit INT TERM EXIT
+
+cleanup_exit()
+{
+ rm -rf tcwg-buildslave
+}
+
+export LANG=C
+distro=$(basename ${PWD} | cut -f1 -d '-')
+arch=$(basename ${PWD} | cut -f2 -d '-')
+name=$(basename ${PWD} | cut -f3- -d '-')
+image=linaro/ci-${arch}-${name}-ubuntu:${distro}
+
+rsync -a ../../tcwg-buildslave/ ./tcwg-buildslave/
+
+(cd ..; ./build.sh)
+docker pull $image 2>/dev/null || true
+docker build --tag=$image .
diff --git a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/xenial-arm64-tcwg-test/Dockerfile b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/xenial-arm64-tcwg-test/Dockerfile
new file mode 100644
index 00000000..76dcac7f
--- /dev/null
+++ b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/xenial-arm64-tcwg-test/Dockerfile
@@ -0,0 +1,7 @@
+FROM linaro/ci-arm64-tcwg-build-ubuntu:xenial
+
+COPY tcwg-buildslave/.ssh /root/.ssh
+
+RUN chmod 0700 /root/.ssh/ \
+ && sed -i -e "/.*PermitRootLogin.*/d" /etc/ssh/sshd_config \
+ && echo "PermitRootLogin without-password" >> /etc/ssh/sshd_config
diff --git a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/xenial-arm64-tcwg-test/build.sh b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/xenial-arm64-tcwg-test/build.sh
new file mode 100755
index 00000000..275a50eb
--- /dev/null
+++ b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/xenial-arm64-tcwg-test/build.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+set -e
+
+trap cleanup_exit INT TERM EXIT
+
+cleanup_exit()
+{
+ rm -rf tcwg-buildslave
+}
+
+export LANG=C
+distro=$(basename ${PWD} | cut -f1 -d '-')
+arch=$(basename ${PWD} | cut -f2 -d '-')
+name=$(basename ${PWD} | cut -f3- -d '-')
+image=linaro/ci-${arch}-${name}-ubuntu:${distro}
+
+rsync -a ../../../tcwg-buildslave/ ./tcwg-buildslave/
+
+(cd ..; ./build.sh)
+docker pull $image 2>/dev/null || true
+docker build --tag=$image .
diff --git a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/Dockerfile b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/Dockerfile
new file mode 100644
index 00000000..d59a3b71
--- /dev/null
+++ b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/Dockerfile
@@ -0,0 +1,46 @@
+FROM linaro/ci-arm64-tcwg-base-ubuntu:xenial
+
+COPY run.sh .
+COPY start.sh .
+
+RUN apt-get update \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y \
+ software-properties-common \
+ && apt-get clean \
+ && rm -rf \
+ /var/lib/apt/lists/* \
+ /tmp/* \
+ /var/tmp/*
+
+RUN apt-get update \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y \
+ apt-file \
+ git-gui \
+ git-review \
+ git-svn \
+ gnat-5 \
+ less \
+ libgmp-dev \
+ libmpc-dev \
+ libmpfr-dev \
+ mc \
+ screen \
+ stgit \
+ tmux \
+ && apt-get clean \
+ && rm -rf \
+ /var/lib/apt/lists/* \
+ /tmp/* \
+ /var/tmp/*
+
+RUN sed -i -e '/.*AuthorizedKeysFile/ d' /etc/ssh/sshd_config \
+ && echo "AuthorizedKeysFile %h/.ssh/authorized_keys.docker" >> /etc/ssh/sshd_config \
+ && locale-gen en_US.UTF-8 && update-locale LANG=en_US.UTF-8 \
+ && apt-file update
+
+# Create directories required for X11.
+RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
+ && chmod 1777 /tmp/.X11-unix /tmp/.ICE-unix
+
+ENTRYPOINT ["/run.sh"]
+CMD ["start.sh"]
diff --git a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/build.sh b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/build.sh
new file mode 100755
index 00000000..8d81f854
--- /dev/null
+++ b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/build.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+set -e
+
+trap cleanup_exit INT TERM EXIT
+
+cleanup_exit()
+{
+ rm -f start.sh run.sh
+}
+
+export LANG=C
+distro=$(basename ${PWD} | cut -f1 -d '-')
+arch=$(basename ${PWD} | cut -f2 -d '-')
+name=$(basename ${PWD} | cut -f3- -d '-')
+image=linaro/ci-${arch}-${name}-ubuntu:${distro}
+
+cat ../../xenial-amd64-tcwg-dev/start.sh.tmpl \
+ | sed -e "s#@IMAGE@#$image#g" \
+ -e "s#@DISTRO@#$distro#g" > start.sh
+chmod +x start.sh
+cp ../../xenial-amd64-tcwg-dev/run.sh.tmpl run.sh
+
+(cd ..; ./build.sh)
+docker pull $image 2>/dev/null || true
+docker build --tag=$image .