Contents of /trunk/mage-buildserver/buildserver-functions.sh
Parent Directory | Revision Log
Revision 2774 -
(show annotations)
(download)
(as text)
Thu Aug 28 09:08:32 2014 UTC (10 years, 1 month ago) by niro
File MIME type: application/x-sh
File size: 2115 byte(s)
Thu Aug 28 09:08:32 2014 UTC (10 years, 1 month ago) by niro
File MIME type: application/x-sh
File size: 2115 byte(s)
-added runarch-pkg-install() function
1 | die() |
2 | { |
3 | echo "ERROR: $@" |
4 | exit 1 |
5 | } |
6 | |
7 | runarch-script() |
8 | { |
9 | local arch="$1" |
10 | local script="$2" |
11 | local buildroot |
12 | local os_arch |
13 | |
14 | # only allow the right arches |
15 | case ${arch} in |
16 | i*86|x86_64) buildroot="${BUILDROOT}/${arch}"; os_arch="${arch}" ;; |
17 | src) os_arch="$(source ${BUILDSERVER_CONFIG_DIR}/profiles/${BUILDROOT_PROFILE}/src/mage.rc; echo ${ARCH})"; buildroot="${BUILDROOT}/src" ;; |
18 | *) die "unknown architecture '${arch}'" ;; |
19 | esac |
20 | |
21 | [ -f ${buildroot}/${script} ] || die "'${buildroot}/${script}' does not exist." |
22 | |
23 | setarch "${os_arch}" systemd-nspawn \ |
24 | --directory="${buildroot}" \ |
25 | --bind=${BUILDROOT}/tmp/mage-tree:/usr/mage \ |
26 | --bind=${BUILDROOT}/svn/mage/include:/usr/mage/include \ |
27 | --bind=${BUILDROOT}/svn/mage/profiles:/usr/mage/profiles \ |
28 | --bind=${BUILDROOT}/svn/smage:/var/cache/mage/smage \ |
29 | --bind=${BUILDROOT}/packages/${arch}:/var/cache/mage/packages \ |
30 | --bind=${BUILDROOT}/packages/src:/var/cache/mage/src-packages \ |
31 | --bind=${BUILDROOT}/meta/${arch}:/var/cache/mage/meta \ |
32 | --bind=/usr/lib/mage-buildserver/helper:/usr/lib/mage-buildserver \ |
33 | --bind=${BUILDROOT}/build-info/${arch}:/var/cache/mage-buildserver \ |
34 | --bind=${BUILDROOT}/ssh:/root/.ssh \ |
35 | bash --login "${script}" \ |
36 | || die "runarch-script '${script}' for '${arch}' failed." |
37 | |
38 | # wait for container to exit |
39 | sleep 1 |
40 | } |
41 | |
42 | runarch() |
43 | { |
44 | local arch="$1" |
45 | shift |
46 | local cmd="$@" |
47 | local buildroot |
48 | local runrc |
49 | |
50 | # only allow the right arches |
51 | case ${arch} in |
52 | i*86|x86_64|src) buildroot="${BUILDROOT}/${arch}"; runrc="${buildroot}/.runrc" ;; |
53 | *) die "unknown architecture '${arch}'" ;; |
54 | esac |
55 | |
56 | # create runrc |
57 | echo "${cmd}" > "${runrc}" |
58 | runarch-script "${arch}" .runrc || die "runarch script execition of '${runrc}' failed." |
59 | |
60 | if [ -f "${runrc}" ] |
61 | then |
62 | rm "${runrc}" |
63 | fi |
64 | } |
65 | |
66 | runarch-pkg-install() |
67 | { |
68 | local arch="$1" |
69 | local pkg="$2" |
70 | |
71 | if [ ! -f ${BUILDROOT}/.stamps/"${arch}"_"${pkg}"-ok ] |
72 | then |
73 | runarch "${arch}" mage install "${pkg}" || die "${arch} install 'python'" |
74 | touch ${BUILDROOT}/.stamps/"${arch}"_"${pkg}"-ok |
75 | else |
76 | echo "Warning: '${pkg}' already installed for arch '${arch}'" |
77 | fi |
78 | |
79 | # never fail |
80 | return 0 |
81 | } |