annotate more/cronjob.sh @ 1229:313c702a0984

Remove toybox.
author Rob Landley <rob@landley.net>
date Tue, 24 Aug 2010 03:08:47 -0500
parents 300e6d919d86
children 7eabfa815c90
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
771
1fbe6d6a5a6b Cron job script to build various nightly snapshots.
Rob Landley <rob@landley.net>
parents:
diff changeset
1 #!/bin/bash
1fbe6d6a5a6b Cron job script to build various nightly snapshots.
Rob Landley <rob@landley.net>
parents:
diff changeset
2
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
3 # Build stable versions of all packages with current scripts.
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
4
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
5 # This gets run in the aboriginal top directory.
852
6ecee01bffa6 Update paths and comments in cronjob.sh, rename "none" to "stable", minor cleanup to logging.
Rob Landley <rob@landley.net>
parents: 851
diff changeset
6
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
7 pull_repo()
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
8 {
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
9 # Clone working copy
852
6ecee01bffa6 Update paths and comments in cronjob.sh, rename "none" to "stable", minor cleanup to logging.
Rob Landley <rob@landley.net>
parents: 851
diff changeset
10
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
11 rm -rf "packages/alt-$1-0.tar.bz2" build/packages/alt-$1
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
12 mkdir -p build/packages/alt-$1
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
13 pushd build/packages/alt-$1 &&
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
14 ln -s ../../../repos/$1/.git .git &&
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
15 git checkout -f master &&
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
16 git pull
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
17 popd
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
18 }
852
6ecee01bffa6 Update paths and comments in cronjob.sh, rename "none" to "stable", minor cleanup to logging.
Rob Landley <rob@landley.net>
parents: 851
diff changeset
19
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
20 # Expire snapshots directory
771
1fbe6d6a5a6b Cron job script to build various nightly snapshots.
Rob Landley <rob@landley.net>
parents:
diff changeset
21
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
22 SNAPSHOTS="$(find snapshots -mindepth 1 -maxdepth 1 -type d)"
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
23 COUNT=$(( $(echo "$SNAPSHOTS" | wc -l) - 30 ))
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
24 if [ "$COUNT" -gt 0 ]
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
25 then
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
26 # Delete appropriate number of oldest entries, then dead symlinks.
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
27 rm -rf $( echo "$SNAPSHOTS" | sort | head -n $COUNT )
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
28 rm -rf $(find -L snapshots -type l)
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
29 fi
771
1fbe6d6a5a6b Cron job script to build various nightly snapshots.
Rob Landley <rob@landley.net>
parents:
diff changeset
30
1146
73d2f37234d7 Better logging for cronjob.
Rob Landley <rob@landley.net>
parents: 1142
diff changeset
31 echo === Begin cron job
73d2f37234d7 Better logging for cronjob.
Rob Landley <rob@landley.net>
parents: 1142
diff changeset
32
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
33 # Start a new snapshot
780
7f0e808e3be0 Allow specifying package list for nightly.sh, add explicit "fwl" and "all" stages, better handling of triage directories, do smoketest-all in parallel.
Rob Landley <rob@landley.net>
parents: 774
diff changeset
34
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
35 export SNAPSHOT_DATE=$(date +"%Y-%m-%d")
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
36 mkdir -p snapshots/$SNAPSHOT_DATE/base &&
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
37 rm snapshots/latest &&
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
38 ln -sf $SNAPSHOT_DATE snapshots/latest || exit 1
789
dde700454fbe Update nightly.sh to new buildall.sh variables, move specifying package list to wrapper script, add "none" stage.
Rob Landley <rob@landley.net>
parents: 788
diff changeset
39
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
40 # build base repo
780
7f0e808e3be0 Allow specifying package list for nightly.sh, add explicit "fwl" and "all" stages, better handling of triage directories, do smoketest-all in parallel.
Rob Landley <rob@landley.net>
parents: 774
diff changeset
41
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
42 export FORK=1
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
43 export CROSS_HOST_ARCH=i686
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
44 hg pull -u
771
1fbe6d6a5a6b Cron job script to build various nightly snapshots.
Rob Landley <rob@landley.net>
parents:
diff changeset
45
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
46 build_snapshot()
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
47 {
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
48 if [ -z "$USE_UNSTABLE" ]
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
49 then
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
50 SNAPNAME=base
771
1fbe6d6a5a6b Cron job script to build various nightly snapshots.
Rob Landley <rob@landley.net>
parents:
diff changeset
51 else
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
52 pull_repo $USE_UNSTABLE
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
53 SNAPNAME=$USE_UNSTABLE
771
1fbe6d6a5a6b Cron job script to build various nightly snapshots.
Rob Landley <rob@landley.net>
parents:
diff changeset
54 fi
1fbe6d6a5a6b Cron job script to build various nightly snapshots.
Rob Landley <rob@landley.net>
parents:
diff changeset
55
1146
73d2f37234d7 Better logging for cronjob.
Rob Landley <rob@landley.net>
parents: 1142
diff changeset
56 echo === Building snapshot $SNAPNAME
73d2f37234d7 Better logging for cronjob.
Rob Landley <rob@landley.net>
parents: 1142
diff changeset
57
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
58 [ "$USE_UNSTABLE" == linux ] &&
1157
300e6d919d86 Move "sources/more/" to just "more/", add a README explaining why those scripts are there, and adjust calls to them.
Rob Landley <rob@landley.net>
parents: 1147
diff changeset
59 more/for-each-arch.sh 'more/migrate-kernel.sh $TARGET'
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
60
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
61 # Update manifest
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
62
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
63 ./download.sh
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
64
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
65 # If it's unchanged, just hardlink the previous binaries instead of rebuilding
771
1fbe6d6a5a6b Cron job script to build various nightly snapshots.
Rob Landley <rob@landley.net>
parents:
diff changeset
66
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
67 if cmp -s snapshots/latest/$SNAPNAME/MANIFEST packages/MANIFEST
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
68 then
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
69 cp -rl snapshots/latest/$SNAPNAME/* snapshots/$SNAPSHOT_DATE/$SNAPNAME
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
70 return
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
71 fi
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
72
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
73 # Build it
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
74
1157
300e6d919d86 Move "sources/more/" to just "more/", add a README explaining why those scripts are there, and adjust calls to them.
Rob Landley <rob@landley.net>
parents: 1147
diff changeset
75 nice -n 20 more/buildall.sh
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
76 rm build/simple-cross-compiler-*.tar.bz2
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
77 mv build/*.tar.bz2 build/logs build/MANIFEST snapshots/$SNAPSHOT_DATE/$SNAPNAME
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
78 }
771
1fbe6d6a5a6b Cron job script to build various nightly snapshots.
Rob Landley <rob@landley.net>
parents:
diff changeset
79
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
80 build_snapshot base
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
81
1146
73d2f37234d7 Better logging for cronjob.
Rob Landley <rob@landley.net>
parents: 1142
diff changeset
82 echo === Building QEMU
73d2f37234d7 Better logging for cronjob.
Rob Landley <rob@landley.net>
parents: 1142
diff changeset
83
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
84 # build qemu-git
771
1fbe6d6a5a6b Cron job script to build various nightly snapshots.
Rob Landley <rob@landley.net>
parents:
diff changeset
85
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
86 QPATH=""
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
87 CPUS=$(echo /sys/devices/system/cpu/cpu[0-9]* | wc -w)
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
88 pull_repo qemu
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
89 pushd build/packages/alt-qemu
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
90 ./configure --disable-werror &&
1147
593392b3186b cronjob didn't include functions.sh so doesn't have maybe_quiet, and the stderr redirect has to go before the pipe to tee anyway.
Rob Landley <rob@landley.net>
parents: 1146
diff changeset
91 nice -n 20 make -j $CPUS 2>&1 | tee build/logs/alt-qemu.txt &&
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
92 QPATH="$(for i in *-softmmu;do echo -n $(pwd)/$i:; done)"
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
93 popd
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
94
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
95 # test all with qemu-git
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
96
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
97 [ -z "$QPATH" ] ||
1157
300e6d919d86 Move "sources/more/" to just "more/", add a README explaining why those scripts are there, and adjust calls to them.
Rob Landley <rob@landley.net>
parents: 1147
diff changeset
98 PATH="$QPATH:$PATH" more/for-each-target.sh \
300e6d919d86 Move "sources/more/" to just "more/", add a README explaining why those scripts are there, and adjust calls to them.
Rob Landley <rob@landley.net>
parents: 1147
diff changeset
99 'more/smoketest.sh $TARGET | tee snapshots/$SNAPSHOT_DATE/base/logs/newqemu-smoketest-$TARGET.txt'
1142
f2cd0b4f3936 New cron job to populate snapshots directory.
Rob Landley <rob@landley.net>
parents: 885
diff changeset
100
1146
73d2f37234d7 Better logging for cronjob.
Rob Landley <rob@landley.net>
parents: 1142
diff changeset
101 #USE_UNSTABLE=linux build_snapshot
73d2f37234d7 Better logging for cronjob.
Rob Landley <rob@landley.net>
parents: 1142
diff changeset
102 #USE_UNSTABLE=uClibc build_snapshot
73d2f37234d7 Better logging for cronjob.
Rob Landley <rob@landley.net>
parents: 1142
diff changeset
103 #USE_UNSTABLE=busybox build_snapshot