diff options
author | Riku Voipio <riku.voipio@linaro.org> | 2017-04-07 10:24:30 +0300 |
---|---|---|
committer | Fathi Boudra <fathi.boudra@linaro.org> | 2017-04-07 08:28:47 +0000 |
commit | ccf0784bfcff79d63513785f9dd7152995a8d10f (patch) | |
tree | 78a6e8fb7aee69bb0b6d049c388c30efead76ce5 /trusty-i386-tcwg-base | |
parent | 8297f29b57d1237f782ab3f81206f9c57dd87d9a (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.list | 1 | ||||
l--------- | trusty-i386-tcwg-base/build-depends.sh | 1 | ||||
-rw-r--r-- | trusty-i386-tcwg-base/trusty-i386-tcwg-build/Dockerfile | 24 | ||||
-rwxr-xr-x | trusty-i386-tcwg-base/trusty-i386-tcwg-build/build.sh | 22 |
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 . |