| 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() { | 15 unlock_git_repo() { |
| 16 local git_index_lock=".git/index.lock" | 16 local git_index_lock=".git/index.lock" |
| 17 if [ -e "$git_index_lock" ]; then | 17 if [ -e "$git_index_lock" ]; then |
| 18 # Can be left over from an interrupted iteration. | 18 # Can be left over from an interrupted iteration. |
| 19 # Safe to remove unless someone is trying to run two iterations in parallel. | 19 # Safe to remove unless someone is trying to run two iterations in parallel. |
| 20 echo "!!! Warning: removing Git index lock in $1 repo !!!" | 20 echo "!!! Warning: removing Git index lock in $1 repo !!!" |
| 21 rm -f "$git_index_lock" | 21 rm -f "$git_index_lock" |
| 22 fi | 22 fi |
| 23 } | 23 } |
| 24 | 24 |
| 25 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | 25 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
| 26 | 26 |
| 27 mark_step 'Moving to the source code directory' | 27 mark_step 'Moving to the source code directory' |
| 28 SOURCE_DIR=/uploader/src/chrome | 28 SOURCE_DIR=/uploader/src/chromium/src |
| 29 cd "$SOURCE_DIR" | 29 cd "$SOURCE_DIR" |
| 30 | 30 |
| 31 mark_step 'Updating chromium' | 31 mark_step 'Updating chromium' |
| 32 unlock_git_repo Chromium || exit $EXIT_CHROMIUM_UPDATE | 32 unlock_git_repo Chromium || exit $EXIT_CHROMIUM_UPDATE |
| 33 git bisect reset || exit $EXIT_CHROMIUM_UPDATE | 33 git bisect reset || exit $EXIT_CHROMIUM_UPDATE |
| 34 git reset --hard || exit $EXIT_CHROMIUM_UPDATE | 34 git reset --hard || exit $EXIT_CHROMIUM_UPDATE |
| 35 git clean -df || exit $EXIT_CHROMIUM_UPDATE | 35 git clean -df || exit $EXIT_CHROMIUM_UPDATE |
| 36 git checkout master || exit $EXIT_CHROMIUM_UPDATE | 36 git checkout -f master || exit $EXIT_CHROMIUM_UPDATE |
| 37 git pull origin || exit $EXIT_CHROMIUM_UPDATE | 37 git pull -f origin || exit $EXIT_CHROMIUM_UPDATE |
| 38 CHROMIUM_GYP_REVISION="$(cat DEPS | $SCRIPT_DIR/uploader_helper.py --find_projec
t_revision='src/tools/gyp')" | |
| 39 | |
| 40 mark_step 'Updating gyp' | |
| 41 pushd tools/gyp | |
| 42 unlock_git_repo Gyp | |
| 43 git fetch || exit $EXIT_GYP_UPDATE | |
| 44 git reset --hard $CHROMIUM_GYP_REVISION || exit $EXIT_GYP_UPDATE | |
| 45 popd | |
| 46 | 38 |
| 47 mark_step 'Figuring out the list of branches' | 39 mark_step 'Figuring out the list of branches' |
| 48 # Special branches. | 40 # Special branches. |
| 49 BRANCHES_LIST="master branch-heads/2454 branch-heads/2490" | 41 BRANCHES_LIST="master branch-heads/2454 branch-heads/2490" |
| 50 # Get a list of branches that were branched after the "first good commit" | 42 # Get a list of branches that were branched after the "first good commit" |
| 51 # (post-merge) on master, this is its Cr-Commit-Position: | 43 # (post-merge) on master, this is its Cr-Commit-Position: |
| 52 AFTER_MERGE_COMMIT_POSITION=350370 | 44 AFTER_MERGE_COMMIT_POSITION=350370 |
| 53 ALL_BRANCHES=$(git branch -r --list 'branch-heads/*') | 45 ALL_BRANCHES=$(git branch -r --list 'branch-heads/*') |
| 54 for BRANCH in $ALL_BRANCHES; do | 46 for BRANCH in $ALL_BRANCHES; do |
| 55 CR_BRANCHED_FROM=$(git log -1 --format=medium "$BRANCH" | grep "^\s*Cr-Branc
hed-From:.*master@{\#[0-9]\+}" | tail -1) | 47 CR_BRANCHED_FROM=$(git log -1 --format=medium "$BRANCH" | grep "^\s*Cr-Branc
hed-From:.*master@{\#[0-9]\+}" | tail -1) |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 mkdir -p $ZIPS_DIR $REVS_DIR $META_DIR $HASH_DIR | 107 mkdir -p $ZIPS_DIR $REVS_DIR $META_DIR $HASH_DIR |
| 116 | 108 |
| 117 if echo "$BLINK_REVISIONS_BLACKLIST" | grep -w $REVISION; then | 109 if echo "$BLINK_REVISIONS_BLACKLIST" | grep -w $REVISION; then |
| 118 echo "Revision $REVISION is in the blacklist, skipping over" | 110 echo "Revision $REVISION is in the blacklist, skipping over" |
| 119 continue | 111 continue |
| 120 fi | 112 fi |
| 121 | 113 |
| 122 echo "Processing $REVISION" | 114 echo "Processing $REVISION" |
| 123 git reset --hard || exit $EXIT_BLINK_UPDATE | 115 git reset --hard || exit $EXIT_BLINK_UPDATE |
| 124 git clean -df || exit $EXIT_BLINK_UPDATE | 116 git clean -df || exit $EXIT_BLINK_UPDATE |
| 125 git checkout $REVISION || exit $EXIT_BLINK_UPDATE | 117 git checkout -f $REVISION || exit $EXIT_BLINK_UPDATE |
| 118 gclient sync -D -R || exit $EXIT_BLINK_UPDATE |
| 126 | 119 |
| 127 # Exclude "trunk" to work around branches that accidentally have a second | 120 echo "Running GN" |
| 128 # copy of Blink sources inside it. See http://crbug.com/450975 | 121 if [ -d out/Default ]; then |
| 129 pushd third_party/WebKit | 122 rm -rf out/Default |
| 130 DEVTOOLS_GYP=$(find . -type f -name devtools.gyp -not -path "*/trunk/*") | |
| 131 if [ -z "$DEVTOOLS_GYP" ]; then | |
| 132 exit $EXIT_DEVTOOLS_GYP_FILE | |
| 133 fi | 123 fi |
| 134 if [ -d ../../out ]; then | 124 mkdir -p out/Default |
| 135 rm -rf ../../out | 125 echo "is_debug=false" > out/Default/args.gn |
| 136 fi | 126 gn gen out/Default || exit $EXIT_GYP_DEVTOOLS |
| 137 DEVTOOLS_DIR=$(dirname "$DEVTOOLS_GYP") | |
| 138 #TODO: need to calculate depth and output paths based on DEVTOOLS_DIR nestin
g level | |
| 139 GYP_GENERATORS=ninja ../../tools/gyp/gyp --toplevel-dir="$DEVTOOLS_DIR" --de
pth=../../../.. --generator-output=../../../.. "$DEVTOOLS_GYP" || exit $EXIT_GYP
_DEVTOOLS | |
| 140 popd | |
| 141 | 127 |
| 128 echo "Running ninja" |
| 142 LASTCHANGE_FILE="build/util/LASTCHANGE" | 129 LASTCHANGE_FILE="build/util/LASTCHANGE" |
| 143 echo "LASTCHANGE=$REVISION" > $LASTCHANGE_FILE | 130 echo "LASTCHANGE=$REVISION" > $LASTCHANGE_FILE |
| 144 LASTCHANGE_BLINK_FILE="build/util/LASTCHANGE.blink" | 131 LASTCHANGE_BLINK_FILE="build/util/LASTCHANGE.blink" |
| 145 echo "LASTCHANGE=$REVISION" > $LASTCHANGE_BLINK_FILE | 132 echo "LASTCHANGE=$REVISION" > $LASTCHANGE_BLINK_FILE |
| 146 | 133 |
| 147 ninja -C out/Default devtools_frontend_resources || exit $EXIT_BUILD_FRONTEN
D | 134 ninja -C out/Default devtools_frontend_resources || exit $EXIT_BUILD_FRONTEN
D |
| 148 ZIP_FILE_NAME=devtools_frontend.zip | 135 ZIP_FILE_NAME=devtools_frontend.zip |
| 149 ZIP_FILE=$(pwd)/out/$ZIP_FILE_NAME | 136 ZIP_FILE=$(pwd)/out/$ZIP_FILE_NAME |
| 150 | 137 |
| 151 pushd out/Default/resources/inspector | 138 pushd out/Default/resources/inspector |
| 139 |
| 140 echo "Creating manifest" |
| 152 # Create an AppCache manifest and patch devtools.html and / or inspector.htm
l to point to it | 141 # Create an AppCache manifest and patch devtools.html and / or inspector.htm
l to point to it |
| 153 MANIFEST_FILE_NAME=$REVISION.manifest | 142 MANIFEST_FILE_NAME=$REVISION.manifest |
| 154 FALLBACK_ENTRIES= | 143 FALLBACK_ENTRIES= |
| 155 for DEVTOOLS_MAIN_HTML in devtools.html inspector.html; do | 144 for DEVTOOLS_MAIN_HTML in devtools.html inspector.html; do |
| 156 if [ ! -f "$DEVTOOLS_MAIN_HTML" ]; then | 145 if [ ! -f "$DEVTOOLS_MAIN_HTML" ]; then |
| 157 continue | 146 continue |
| 158 fi | 147 fi |
| 159 sed -i -e 's/^<html>/<html manifest="'$MANIFEST_FILE_NAME'">/' $DEVTOOLS
_MAIN_HTML | 148 sed -i -e 's/^<html>/<html manifest="'$MANIFEST_FILE_NAME'">/' $DEVTOOLS
_MAIN_HTML |
| 160 FALLBACK_ENTRIES="$FALLBACK_ENTRIES $DEVTOOLS_MAIN_HTML" | 149 FALLBACK_ENTRIES="$FALLBACK_ENTRIES $DEVTOOLS_MAIN_HTML" |
| 161 done | 150 done |
| 162 if [ -z "$FALLBACK_ENTRIES" ]; then | 151 if [ -z "$FALLBACK_ENTRIES" ]; then |
| 163 exit $EXIT_MANIFEST_CREATION | 152 exit $EXIT_MANIFEST_CREATION |
| 164 fi | 153 fi |
| 165 | 154 |
| 166 cat <<EOF > $MANIFEST_FILE_NAME | 155 cat <<EOF > $MANIFEST_FILE_NAME |
| 167 CACHE MANIFEST | 156 CACHE MANIFEST |
| 168 FALLBACK: | 157 FALLBACK: |
| 169 EOF | 158 EOF |
| 170 for FALLBACK_ENTRY in $FALLBACK_ENTRIES; do | 159 for FALLBACK_ENTRY in $FALLBACK_ENTRIES; do |
| 171 echo "$FALLBACK_ENTRY $FALLBACK_ENTRY" >> $MANIFEST_FILE_NAME | 160 echo "$FALLBACK_ENTRY $FALLBACK_ENTRY" >> $MANIFEST_FILE_NAME |
| 172 done | 161 done |
| 173 echo "CACHE:" >> $MANIFEST_FILE_NAME | 162 echo "CACHE:" >> $MANIFEST_FILE_NAME |
| 174 find -type f -not -name $MANIFEST_FILE_NAME -print | sed -e 's#^\./##' >> $M
ANIFEST_FILE_NAME | 163 find -type f -not -name $MANIFEST_FILE_NAME -print | sed -e 's#^\./##' >> $M
ANIFEST_FILE_NAME |
| 175 | 164 |
| 165 echo "Creating a zip file" |
| 176 zip -9r $ZIP_FILE * || exit $EXIT_ZIP_FRONTEND | 166 zip -9r $ZIP_FILE * || exit $EXIT_ZIP_FRONTEND |
| 177 | 167 |
| 168 echo "Creating meta and hash files" |
| 178 # Copy each file to hash/<sha1>, write <sha1>:<path> to meta file. | 169 # Copy each file to hash/<sha1>, write <sha1>:<path> to meta file. |
| 179 META_FILE_NAME="$META_DIR/@$REVISION" | 170 META_FILE_NAME="$META_DIR/@$REVISION" |
| 180 for FILE_NAME in $(find -type f); do | 171 for FILE_NAME in $(find -type f); do |
| 181 FILE_SHA1=$(sha1sum $FILE_NAME | awk '{print $1}') | 172 FILE_SHA1=$(sha1sum $FILE_NAME | awk '{print $1}') |
| 182 cp $FILE_NAME "$HASH_DIR/$FILE_SHA1" | 173 cp $FILE_NAME "$HASH_DIR/$FILE_SHA1" |
| 183 echo "$FILE_SHA1:${FILE_NAME##./}" >> $META_FILE_NAME | 174 echo "$FILE_SHA1:${FILE_NAME##./}" >> $META_FILE_NAME |
| 184 done; | 175 done; |
| 185 | 176 |
| 186 popd | 177 popd |
| 187 | 178 |
| 179 echo "Creating revs file" |
| 188 ZIP_SHA1=$(sha1sum $ZIP_FILE | awk '{print $1}') | 180 ZIP_SHA1=$(sha1sum $ZIP_FILE | awk '{print $1}') |
| 189 mv $ZIP_FILE "$ZIPS_DIR/$ZIP_SHA1.zip" | 181 mv $ZIP_FILE "$ZIPS_DIR/$ZIP_SHA1.zip" |
| 190 echo "$ZIP_SHA1" > "$REVS_DIR/@$REVISION" | 182 echo "$ZIP_SHA1" > "$REVS_DIR/@$REVISION" |
| 191 | 183 |
| 184 echo "Uploading to storage for revision $REVISION" |
| 192 # Comment out the line below for testing. | 185 # Comment out the line below for testing. |
| 193 gsutil -m cp -R $LOCAL_STORAGE_DIR/* $GS_PATH || exit $EXIT_CS_UPLOAD | 186 gsutil -m cp -n -R $LOCAL_STORAGE_DIR/* $GS_PATH || exit $EXIT_CS_UPLOAD |
| 194 done | 187 done |
| OLD | NEW |