OLD | NEW |
1 #!/bin/bash | 1 #!/bin/bash |
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 # This enables bash to treat any unhandled non-zero exit codes as "exceptions" | 6 # This enables bash to treat any unhandled non-zero exit codes as "exceptions" |
7 set -e | 7 set -e |
8 source $(dirname $0)/uploader_exit_codes.sh | 8 source $(dirname $0)/uploader_exit_codes.sh |
9 | 9 |
10 mark_step() { | 10 mark_step() { |
11 echo "$*" | 11 echo "$*" |
12 echo '=====================' | 12 echo '=====================' |
13 } | 13 } |
14 | 14 |
| 15 unlock_git_repo() { |
| 16 local git_index_lock=".git/index.lock" |
| 17 if [ -e "$git_index_lock" ]; then |
| 18 # Can be left over from an interrupted iteration. |
| 19 # Safe to remove unless someone is trying to run two iterations in parallel. |
| 20 echo "!!! Warning: removing Git index lock in $1 repo !!!" |
| 21 rm -f "$git_index_lock" |
| 22 fi |
| 23 } |
| 24 |
15 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | 25 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
16 | 26 |
17 mark_step 'Moving to the source code directory' | 27 mark_step 'Moving to the source code directory' |
18 SOURCE_DIR=/uploader/src | 28 SOURCE_DIR=/uploader/src/chrome |
19 cd "$SOURCE_DIR" | 29 cd "$SOURCE_DIR" |
20 | 30 |
| 31 mark_step 'Updating chromium' |
| 32 unlock_git_repo Chromium || exit $EXIT_CHROMIUM_UPDATE |
| 33 git reset --hard master || exit $EXIT_CHROMIUM_UPDATE |
| 34 git pull || exit $EXIT_CHROMIUM_UPDATE |
| 35 CHROMIUM_GYP_REVISION="$(cat DEPS | $SCRIPT_DIR/uploader_helper.py --find_projec
t_revision='src/tools/gyp')" |
| 36 |
21 mark_step 'Updating gyp' | 37 mark_step 'Updating gyp' |
22 pushd gyp | 38 pushd tools/gyp |
23 CHROMIUM_DEPS=$(curl -fsS http://src.chromium.org/chrome/trunk/src/DEPS) || exit
$EXIT_GYP_UPDATE | 39 unlock_git_repo Gyp |
24 CHROMIUM_GYP_REVISION="$(echo "$CHROMIUM_DEPS" | $SCRIPT_DIR/uploader_helper.py
--find_project_revision='src/tools/gyp')" | 40 git fetch || exit $EXIT_GYP_UPDATE |
25 svn cleanup || exit $EXIT_GYP_UPDATE | 41 git reset --hard $CHROMIUM_GYP_REVISION || exit $EXIT_GYP_UPDATE |
26 svn up -r $CHROMIUM_GYP_REVISION || exit $EXIT_GYP_UPDATE | |
27 popd | 42 popd |
28 | 43 |
29 mark_step 'Getting the last Blink revision for which the frontend has been uploa
ded' | 44 mark_step 'Getting the last Blink revision for which the frontend has been uploa
ded' |
30 GS_PATH=gs://chrome-devtools-frontend | 45 GS_PATH=gs://chrome-devtools-frontend |
31 KNOWN_REVISIONS_DIR="$GS_PATH/revs" | 46 KNOWN_REVISIONS_DIR="$GS_PATH/revs" |
32 ALL_UPLOADED_REVS=$(gsutil ls "$KNOWN_REVISIONS_DIR") || exit $EXIT_LAST_UPLOADE
D_BLINK_REV | 47 ALL_UPLOADED_REVS=$(gsutil ls "$KNOWN_REVISIONS_DIR") || exit $EXIT_LAST_UPLOADE
D_BLINK_REV |
33 LAST_BLINK_REVISION=$(echo "$ALL_UPLOADED_REVS" | sed -e "s#^$KNOWN_REVISIONS_DI
R/@##" | sort -nr | head -n 1) | 48 LAST_BLINK_REVISION=$(echo "$ALL_UPLOADED_REVS" | sed -e "s#^$KNOWN_REVISIONS_DI
R/@##" | sort -nr | head -n 1) |
34 if [ -z "$LAST_BLINK_REVISION" ]; then | 49 if [ -z "$LAST_BLINK_REVISION" ]; then |
35 exit $EXIT_LAST_UPLOADED_BLINK_REV | 50 exit $EXIT_LAST_UPLOADED_BLINK_REV |
36 fi | 51 fi |
37 echo "Last uploaded was for Blink revision $LAST_BLINK_REVISION" | 52 echo "Last uploaded was for Blink revision $LAST_BLINK_REVISION" |
38 | 53 |
39 mark_step 'Getting Blink revisions blacklist' | 54 mark_step 'Getting Blink revisions blacklist' |
40 BLINK_REVISIONS_BLACKLIST_FILE=$GS_PATH/blink_revisions_blacklist | 55 BLINK_REVISIONS_BLACKLIST_FILE=$GS_PATH/blink_revisions_blacklist |
41 BLINK_REVISIONS_BLACKLIST="" | 56 BLINK_REVISIONS_BLACKLIST="" |
42 if gsutil ls "$BLINK_REVISIONS_BLACKLIST_FILE"; then | 57 if gsutil ls "$BLINK_REVISIONS_BLACKLIST_FILE"; then |
43 BLINK_REVISIONS_BLACKLIST=$(gsutil cat "$BLINK_REVISIONS_BLACKLIST_FILE") | 58 BLINK_REVISIONS_BLACKLIST=$(gsutil cat "$BLINK_REVISIONS_BLACKLIST_FILE") |
44 fi | 59 fi |
45 | 60 |
46 mark_step 'Working out SVN revisions list' | 61 mark_step 'Working out SVN revisions list' |
47 pushd blink | 62 pushd third_party/WebKit |
48 git fetch || exit $EXIT_BLINK_UPDATE | 63 git fetch || exit $EXIT_BLINK_UPDATE |
49 HEAD_BLINK_REVISION=$(git log -n 1 --all --grep="git-svn-id:" --pretty=medium |
grep -Po "git-svn-id:[^@]*@\d+" | grep -Po "@\d+" | grep -Po "\d+") | 64 HEAD_BLINK_REVISION=$(git log -n 1 --all --grep="git-svn-id:" --pretty=medium |
grep -Po "git-svn-id:[^@]*@\d+" | grep -Po "@\d+" | grep -Po "\d+") |
50 popd | 65 popd |
51 echo "Last committed was Blink revision $HEAD_BLINK_REVISION" | 66 echo "Last committed was Blink revision $HEAD_BLINK_REVISION" |
52 REVISION_LIST=$(seq $[LAST_BLINK_REVISION+1] $HEAD_BLINK_REVISION) | 67 REVISION_LIST=$(seq $[LAST_BLINK_REVISION+1] $HEAD_BLINK_REVISION) |
53 if [ -z "$REVISION_LIST" ]; then | 68 if [ -z "$REVISION_LIST" ]; then |
54 exit $EXIT_NO_UPDATED_BRANCHES | 69 exit $EXIT_NO_UPDATED_BRANCHES |
55 fi | 70 fi |
56 | 71 |
57 mark_step 'Building DevTools frontend for revisions and uploading to Cloud Stora
ge' | 72 mark_step 'Building DevTools frontend for revisions and uploading to Cloud Stora
ge' |
58 for REVISION in $REVISION_LIST; do | 73 for REVISION in $REVISION_LIST; do |
59 LOCAL_STORAGE_DIR=/uploader/storage | 74 LOCAL_STORAGE_DIR=/uploader/storage |
60 if [ -d $LOCAL_STORAGE_DIR ]; then | 75 if [ -d $LOCAL_STORAGE_DIR ]; then |
61 rm -rf $LOCAL_STORAGE_DIR | 76 rm -rf $LOCAL_STORAGE_DIR |
62 fi | 77 fi |
63 ZIPS_DIR="$LOCAL_STORAGE_DIR/zips" | 78 ZIPS_DIR="$LOCAL_STORAGE_DIR/zips" |
64 REVS_DIR="$LOCAL_STORAGE_DIR/revs" | 79 REVS_DIR="$LOCAL_STORAGE_DIR/revs" |
65 META_DIR="$LOCAL_STORAGE_DIR/meta" | 80 META_DIR="$LOCAL_STORAGE_DIR/meta" |
66 HASH_DIR="$LOCAL_STORAGE_DIR/hash" | 81 HASH_DIR="$LOCAL_STORAGE_DIR/hash" |
67 mkdir -p $ZIPS_DIR $REVS_DIR $META_DIR $HASH_DIR | 82 mkdir -p $ZIPS_DIR $REVS_DIR $META_DIR $HASH_DIR |
68 | 83 |
69 if echo "$BLINK_REVISIONS_BLACKLIST" | grep -w $REVISION; then | 84 if echo "$BLINK_REVISIONS_BLACKLIST" | grep -w $REVISION; then |
70 echo "Revision $REVISION is in the blacklist, skipping over" | 85 echo "Revision $REVISION is in the blacklist, skipping over" |
71 continue | 86 continue |
72 fi | 87 fi |
73 | 88 |
74 pushd blink | 89 pushd third_party/WebKit |
75 REVISION_COMMIT=$(git log -n 1 --all --grep="git-svn-id:[^@]*@$REVISION" --p
retty=oneline | awk '{ print $1; }') | 90 REVISION_COMMIT=$(git log -n 1 --all --grep="git-svn-id:[^@]*@$REVISION" --p
retty=oneline | awk '{ print $1; }') |
76 if [ -z "$REVISION_COMMIT" ]; then | 91 if [ -z "$REVISION_COMMIT" ]; then |
77 echo "@$REVISION ==> missing!" | 92 echo "@$REVISION ==> missing!" |
78 popd | 93 popd |
79 continue | 94 continue |
80 fi | 95 fi |
81 echo "@$REVISION ==> $REVISION_COMMIT" | 96 echo "@$REVISION ==> $REVISION_COMMIT" |
82 GIT_INDEX_LOCK=".git/index.lock" | 97 unlock_git_repo Blink || exit $EXIT_BLINK_UPDATE |
83 if [ -e "$GIT_INDEX_LOCK" ]; then | |
84 # Can be left over from an interrupted iteration. | |
85 # Safe to remove unless someone is trying to run two iterations in paral
lel. | |
86 echo "!!! Warning: removing Git index lock !!!" | |
87 rm -f "$GIT_INDEX_LOCK" || exit $EXIT_BLINK_UPDATE | |
88 fi | |
89 git reset --hard $REVISION_COMMIT || exit $EXIT_BLINK_UPDATE | 98 git reset --hard $REVISION_COMMIT || exit $EXIT_BLINK_UPDATE |
90 | 99 |
91 # Exclude "trunk" to work around branches that accidentally have a second | 100 # Exclude "trunk" to work around branches that accidentally have a second |
92 # copy of Blink sources inside it. See http://crbug.com/450975 | 101 # copy of Blink sources inside it. See http://crbug.com/450975 |
93 DEVTOOLS_GYP=$(find . -type f -name devtools.gyp -not -path "*/trunk/*") | 102 DEVTOOLS_GYP=$(find . -type f -name devtools.gyp -not -path "*/trunk/*") |
94 if [ -z "$DEVTOOLS_GYP" ]; then | 103 if [ -z "$DEVTOOLS_GYP" ]; then |
95 exit $EXIT_DEVTOOLS_GYP_FILE | 104 exit $EXIT_DEVTOOLS_GYP_FILE |
96 fi | 105 fi |
97 if [ -d ../devtools-frontend ]; then | 106 if [ -d ../../out ]; then |
98 rm -rf ../devtools-frontend | 107 rm -rf ../../out |
99 fi | 108 fi |
100 DEVTOOLS_DIR=$(dirname "$DEVTOOLS_GYP") | 109 DEVTOOLS_DIR=$(dirname "$DEVTOOLS_GYP") |
101 GYP_GENERATORS=ninja ../gyp/gyp --toplevel-dir="$DEVTOOLS_DIR" --depth=../..
/../../devtools-frontend --generator-output=../../../../devtools-frontend "$DEVT
OOLS_GYP" || exit $EXIT_GYP_DEVTOOLS | 110 #TODO: need to calculate depth and output paths based on DEVTOOLS_DIR nestin
g level |
| 111 GYP_GENERATORS=ninja ../../tools/gyp/gyp --toplevel-dir="$DEVTOOLS_DIR" --de
pth=../../../.. --generator-output=../../../.. "$DEVTOOLS_GYP" || exit $EXIT_GYP
_DEVTOOLS |
102 popd | 112 popd |
103 | 113 |
104 LASTCHANGE_DIR="$SOURCE_DIR/../build/util" | 114 LASTCHANGE_FILE="build/util/LASTCHANGE.blink" |
105 LASTCHANGE_FILE="$LASTCHANGE_DIR/LASTCHANGE.blink" | |
106 mkdir -p $LASTCHANGE_DIR | |
107 echo "LASTCHANGE=$REVISION" > $LASTCHANGE_FILE | 115 echo "LASTCHANGE=$REVISION" > $LASTCHANGE_FILE |
108 | 116 |
109 ninja -C devtools-frontend/out/Default devtools_frontend_resources || exit $
EXIT_BUILD_FRONTEND | 117 ninja -C out/Default devtools_frontend_resources || exit $EXIT_BUILD_FRONTEN
D |
110 ZIP_FILE_NAME=devtools_frontend.zip | 118 ZIP_FILE_NAME=devtools_frontend.zip |
111 ZIP_FILE=$(pwd)/devtools-frontend/$ZIP_FILE_NAME | 119 ZIP_FILE=$(pwd)/out/$ZIP_FILE_NAME |
112 | 120 |
113 pushd devtools-frontend/out/Default/resources/inspector | 121 pushd out/Default/resources/inspector |
114 # Create an AppCache manifest and patch devtools.html and / or inspector.htm
l to point to it | 122 # Create an AppCache manifest and patch devtools.html and / or inspector.htm
l to point to it |
115 MANIFEST_FILE_NAME=$REVISION.manifest | 123 MANIFEST_FILE_NAME=$REVISION.manifest |
116 FALLBACK_ENTRIES= | 124 FALLBACK_ENTRIES= |
117 for DEVTOOLS_MAIN_HTML in devtools.html inspector.html; do | 125 for DEVTOOLS_MAIN_HTML in devtools.html inspector.html; do |
118 if [ ! -f "$DEVTOOLS_MAIN_HTML" ]; then | 126 if [ ! -f "$DEVTOOLS_MAIN_HTML" ]; then |
119 continue | 127 continue |
120 fi | 128 fi |
121 sed -i -e 's/^<html>/<html manifest="'$MANIFEST_FILE_NAME'">/' $DEVTOOLS
_MAIN_HTML | 129 sed -i -e 's/^<html>/<html manifest="'$MANIFEST_FILE_NAME'">/' $DEVTOOLS
_MAIN_HTML |
122 FALLBACK_ENTRIES="$FALLBACK_ENTRIES $DEVTOOLS_MAIN_HTML" | 130 FALLBACK_ENTRIES="$FALLBACK_ENTRIES $DEVTOOLS_MAIN_HTML" |
123 done | 131 done |
(...skipping 23 matching lines...) Expand all Loading... |
147 | 155 |
148 popd | 156 popd |
149 | 157 |
150 ZIP_SHA1=$(sha1sum $ZIP_FILE | awk '{print $1}') | 158 ZIP_SHA1=$(sha1sum $ZIP_FILE | awk '{print $1}') |
151 mv $ZIP_FILE "$ZIPS_DIR/$ZIP_SHA1.zip" | 159 mv $ZIP_FILE "$ZIPS_DIR/$ZIP_SHA1.zip" |
152 echo "$ZIP_SHA1" > "$REVS_DIR/@$REVISION" | 160 echo "$ZIP_SHA1" > "$REVS_DIR/@$REVISION" |
153 | 161 |
154 # Comment out the line below for testing. | 162 # Comment out the line below for testing. |
155 gsutil -m cp -R $LOCAL_STORAGE_DIR/* $GS_PATH || exit $EXIT_CS_UPLOAD | 163 gsutil -m cp -R $LOCAL_STORAGE_DIR/* $GS_PATH || exit $EXIT_CS_UPLOAD |
156 done | 164 done |
OLD | NEW |