aboutsummaryrefslogtreecommitdiff
path: root/trusty-i386-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 /trusty-i386-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 'trusty-i386-tcwg-base')
-rw-r--r--trusty-i386-tcwg-base/build-depends.list1
l---------trusty-i386-tcwg-base/build-depends.sh1
-rw-r--r--trusty-i386-tcwg-base/trusty-i386-tcwg-build/Dockerfile24
-rwxr-xr-xtrusty-i386-tcwg-base/trusty-i386-tcwg-build/build.sh22
4 files changed, 46 insertions, 2 deletions
diff --git a/trusty-i386-tcwg-base/build-depends.list b/trusty-i386-tcwg-base/build-depends.list
deleted file mode 100644
index 2411d55b..00000000
--- a/trusty-i386-tcwg-base/build-depends.list
+++ /dev/null
@@ -1 +0,0 @@
-trusty-i386-tcwg-build
diff --git a/trusty-i386-tcwg-base/build-depends.sh b/trusty-i386-tcwg-base/build-depends.sh
deleted file mode 120000
index ba9a1f9c..00000000
--- a/trusty-i386-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/trusty-i386-tcwg-base/trusty-i386-tcwg-build/Dockerfile b/trusty-i386-tcwg-base/trusty-i386-tcwg-build/Dockerfile
new file mode 100644
index 00000000..3853e661
--- /dev/null
+++ b/trusty-i386-tcwg-base/trusty-i386-tcwg-build/Dockerfile
@@ -0,0 +1,24 @@
+FROM linaro/ci-i386-tcwg-base-ubuntu:trusty
+
+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/trusty-i386-tcwg-base/trusty-i386-tcwg-build/build.sh b/trusty-i386-tcwg-base/trusty-i386-tcwg-build/build.sh
new file mode 100755
index 00000000..8926d874
--- /dev/null
+++ b/trusty-i386-tcwg-base/trusty-i386-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 .