Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(558)

Side by Side Diff: buildbot/file_up_down_load.sh

Issue 11361204: Added helper for upload/download of canned nexes. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. 2 # Copyright (c) 2012 The Native Client 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 script for up/downloading native client toolchains. 6 #@ This script for up/downloading native client toolchains, etc..
7 #@ To manually inspect what is on the store servers point your
8 #@ browser at:
9 #@ http://gsdview.appspot.com/nativeclient-archive2/
7 10
8 #set -o xtrace 11 #set -o xtrace
9 set -o nounset 12 set -o nounset
10 set -o errexit 13 set -o errexit
11 14
12 ###################################################################### 15 ######################################################################
13 # Helper 16 # Helper
14 ###################################################################### 17 ######################################################################
15 18
16 Banner() { 19 Banner() {
(...skipping 14 matching lines...) Expand all
31 exit -1 34 exit -1
32 fi 35 fi
33 } 36 }
34 37
35 ###################################################################### 38 ######################################################################
36 # Config 39 # Config
37 ###################################################################### 40 ######################################################################
38 41
39 readonly GS_UTIL=${GS_UTIL:-buildbot/gsutil.sh} 42 readonly GS_UTIL=${GS_UTIL:-buildbot/gsutil.sh}
40 43
41 # raw data store url 44 readonly DIR_ARCHIVE=nativeclient-archive2
45 readonly DIR_TRYBOT=nativeclient-trybot
46
42 readonly URL_PREFIX_RAW=https://commondatastorage.googleapis.com 47 readonly URL_PREFIX_RAW=https://commondatastorage.googleapis.com
43 # appengine app that constructs a synthetic directory listing 48 readonly URL_PREFIX_ARCHIVE="${URL_PREFIX_RAW}/${DIR_ARCHIVE}"
44 # for the data store 49 readonly URL_PREFIX_TRYBOT="${URL_PREFIX_RAW}/${DIR_TRYBOT}"
45 readonly URL_PREFIX_UI=http://gsdview.appspot.com
46 readonly BASE_TOOLCHAIN_COMPONENT=nativeclient-archive2/toolchain
47 50
48 readonly BASE_BETWEEN_BOTS_TRY=nativeclient-trybot/between_builders 51 readonly GS_PREFIX_ARCHIVE="gs://${DIR_ARCHIVE}"
49 readonly BASE_BETWEEN_BOTS=nativeclient-archive2/between_builders 52 readonly GS_PREFIX_TRYBOT="gs://${DIR_TRYBOT}"
50 53
51 54 readonly URL_PREFIX_UI="http://gsdview.appspot.com"
52 ###################################################################### 55 ######################################################################
53 # UTIL 56 # UTIL
54 ###################################################################### 57 ######################################################################
55 GetFileSizeK() { 58 GetFileSizeK() {
56 # Note: this is tricky to make work on win/linux/mac 59 # Note: this is tricky to make work on win/linux/mac
57 du -k $1 | egrep -o "^[0-9]+" 60 du -k $1 | egrep -o "^[0-9]+"
58 } 61 }
59 62
60 63
61 Upload() { 64 Upload() {
62 local size_kb=$(GetFileSizeK $1) 65 local size_kb=$(GetFileSizeK $1)
63 echo "uploading: $2 (${size_kb}kB)" 66 echo "uploading: $2 (${size_kb}kB)"
64 echo "@@@STEP_LINK@download (${size_kb}kB)@${URL_PREFIX_UI}/$2@@@" 67 local path=${2:5}
65 ${GS_UTIL} cp -a public-read $1 gs://$2 68 echo "@@@STEP_LINK@download (${size_kb}kB)@${URL_PREFIX_UI}/${path}@@@"
69 ${GS_UTIL} cp -a public-read $1 $2
66 } 70 }
67 71
72 CheckPath() {
73 if [[ $1 != toolchain/* &&
74 $1 != between_builders/* &&
75 $1 != canned_nexe/* ]] ; then
76 echo "ERROR: Bad component name: $1"
77 exit -1
78 fi
79 }
68 80
69 UploadToolchainComponent() { 81 UploadArchive() {
70 local rev=$1 82 local path=$1
71 local name=$2 83 local tarball=$2
72 local tarball=$3
73 84
74 Upload ${tarball} ${BASE_TOOLCHAIN_COMPONENT}/${rev}/${name} 85 CheckPath ${path}
86 Upload ${tarball} ${GS_PREFIX_ARCHIVE}/${path}
87 }
88
89 DownloadArchive() {
90 local path=$1
91 local tarball=$2
92
93 CheckPath ${path}
94 curl -L ${URL_PREFIX_ARCHIVE}/${path} -o ${tarball}
95 }
96
97 UploadTrybot() {
98 local path=$1
99 local tarball=$2
100
101 CheckPath ${path}
102 Upload ${tarball} ${GS_PREFIX_TRYBOT}/${path}
103 }
104
105 DownloadTrybot() {
106 local path=$1
107 local tarball=$2
108
109 CheckPath ${path}
110 curl -L ${URL_PREFIX_TRYBOT}/${path} -o ${tarball}
75 } 111 }
76 112
77 ComputeSha1() { 113 ComputeSha1() {
78 # on mac we do not have sha1sum so we fall back to openssl 114 # on mac we do not have sha1sum so we fall back to openssl
79 if which sha1sum >/dev/null ; then 115 if which sha1sum >/dev/null ; then
80 echo "$(SHA1=$(sha1sum -b $1) ; echo ${SHA1:0:40})" 116 echo "$(SHA1=$(sha1sum -b $1) ; echo ${SHA1:0:40})"
81 elif which openssl >/dev/null ; then 117 elif which openssl >/dev/null ; then
82 echo "$(SHA1=$(openssl sha1 $1) ; echo ${SHA1/* /})" 118 echo "$(SHA1=$(openssl sha1 $1) ; echo ${SHA1/* /})"
83 119
84 else 120 else
85 echo "ERROR: do not know how to compute SHA1" 121 echo "ERROR: do not know how to compute SHA1"
86 exit 1 122 exit 1
87 fi 123 fi
88 } 124 }
89 125
90 ###################################################################### 126 ######################################################################
91 # ARM TRUSTED 127 # ARM TRUSTED
92 ###################################################################### 128 ######################################################################
93 129
94 UploadArmTrustedToolchain() { 130 UploadArmTrustedToolchain() {
95 local rev=$1 131 local rev=$1
96 local tarball=$2 132 local tarball=$2
97 133
98 UploadToolchainComponent ${rev} naclsdk_linux_arm-trusted.tgz ${tarball} 134 UploadArchive toolchain/${rev}/naclsdk_linux_arm-trusted.tgz ${tarball}
99 } 135 }
100 136
101 DownloadArmTrustedToolchain() { 137 DownloadArmTrustedToolchain() {
102 local rev=$1 138 local rev=$1
103 local tarball=$2 139 local tarball=$2
104 curl -L \ 140 DownloadArchive toolchain/${rev}/naclsdk_linux_arm-trusted.tgz ${tarball}
105 ${URL_PREFIX_RAW}/${BASE_TOOLCHAIN_COMPONENT}/${rev}/naclsdk_linux_arm-trus ted.tgz \
106 -o ${tarball}
107 } 141 }
108 142
109 ShowRecentArmTrustedToolchains() { 143 ShowRecentArmTrustedToolchains() {
110 local url=gs://${BASE_TOOLCHAIN_COMPONENT}/*/naclsdk_linux_arm-trusted.tgz 144 local url=${GS_PREFIX_ARCHIVE}/toolchain/*/naclsdk_linux_arm-trusted.tgz
111 local recent=$(${GS_UTIL} ls ${url} | tail -5) 145 local recent=$(${GS_UTIL} ls ${url} | tail -5)
112 for url in ${recent} ; do 146 for url in ${recent} ; do
113 if ${GS_UTIL} ls -L "${url}" ; then 147 if ${GS_UTIL} ls -L "${url}" ; then
114 echo "=====" 148 echo "====="
115 fi 149 fi
116 done 150 done
117 } 151 }
118 152
119 ###################################################################### 153 ######################################################################
120 # ARM UN-TRUSTED 154 # ARM UN-TRUSTED
121 ###################################################################### 155 ######################################################################
122 156
123 #@ label should be in : 157 #@ label should be in :
124 #@ 158 #@
125 #@ pnacl_linux_x86 159 #@ pnacl_linux_x86
126 #@ pnacl_mac_x86 160 #@ pnacl_mac_x86
127 #@ pnacl_win_x86 161 #@ pnacl_win_x86
128 162
129 UploadPnaclToolchains() { 163 UploadPnaclToolchains() {
130 local rev=$1 164 local rev=$1
131 local label=$2 165 local label=$2
132 local tarball=$3 166 local tarball=$3
133 167
134 ComputeSha1 ${tarball} > ${tarball}.sha1hash 168 ComputeSha1 ${tarball} > ${tarball}.sha1hash
135 UploadToolchainComponent ${rev} naclsdk_${label}.tgz.sha1hash ${tarball}.sha1h ash 169 UploadArchive toolchain/${rev}/naclsdk_${label}.tgz.sha1hash ${tarball}.sha1ha sh
136 170
137 # NOTE: only the last link is shown on the waterfall so this should come last 171 # NOTE: only the last link is shown on the waterfall so this should come last
138 UploadToolchainComponent ${rev} naclsdk_${label}.tgz ${tarball} 172 UploadArchive toolchain/${rev}/naclsdk_${label}.tgz ${tarball}
139 } 173 }
140 174
141 DownloadPnaclToolchains() { 175 DownloadPnaclToolchains() {
142 local rev=$1 176 local rev=$1
143 local label=$2 177 local label=$2
144 local tarball=$3 178 local tarball=$3
145 179
146 curl -L \ 180 DownloadComponent toolchain/${rev}/naclsdk_${label}.tgz ${tarball}
147 ${URL_PREFIX_RAW}/${BASE_TOOLCHAIN_COMPONENT}/${rev}/naclsdk_${label}.tgz\
148 -o ${tarball}
149 } 181 }
150 182
151 ShowRecentPnaclToolchains() { 183 ShowRecentPnaclToolchains() {
152 local label=$1 184 local label=$1
153 local url="gs://${BASE_TOOLCHAIN_COMPONENT}/*/naclsdk_${label}.tgz" 185 local url="${GS_PREFIX_ARCHIVE}/toolchain/*/naclsdk_${label}.tgz"
154 186
155 local recent=$(${GS_UTIL} ls ${url} | tail -5) 187 local recent=$(${GS_UTIL} ls ${url} | tail -5)
156 for url in ${recent} ; do 188 for url in ${recent} ; do
157 if ${GS_UTIL} ls -L "${url}" ; then 189 if ${GS_UTIL} ls -L "${url}" ; then
158 echo "=====" 190 echo "====="
159 fi 191 fi
160 done 192 done
161 } 193 }
162 194
163 ###################################################################### 195 ######################################################################
196 # Nexes for regression/speed tests
197 ######################################################################
198
199 UploadArchivedNexes() {
200 local rev=$1
201 local label="archived_nexes_$2.tar.bz2"
202 local tarball=$3
203
204 # TODO(robertm,bradn): find another place to store this and
205 # negotiate long term storage guarantees
206 UploadArchive canned_nexe/${rev}/${label} ${tarball}
207 }
208
209 DownloadArchivedNexes() {
210 local rev=$1
211 local label="archived_nexes_$2.tar.bz2"
212 local tarball=$3
213
214 DownloadArchive canned_nexe/${rev}/${label} ${tarball}
215 }
216
217 ######################################################################
164 # Pexes for bitcode stability testing 218 # Pexes for bitcode stability testing
165 ###################################################################### 219 ######################################################################
166 220
167 UploadArchivedPexes() { 221 UploadArchivedPexes() {
168 local rev=$1 222 local rev=$1
169 local label="archived_pexes_$2.tar.bz2" 223 local label="archived_pexes_$2.tar.bz2"
170 local tarball=$3 224 local tarball=$3
171 225
172 # TODO(robertm,bradn): find another place to store this and 226 # TODO(robertm,bradn): find another place to store this and
173 # negotiate long term storage guarantees 227 # negotiate long term storage guarantees
174 UploadToolchainComponent ${rev} ${label} ${tarball} 228 # Note, we store the pexes with the toolchain rev for now
229 UploadArchive toolchain/${rev}/${label} ${tarball}
175 } 230 }
176 231
177 DownloadArchivedPexes() { 232 DownloadArchivedPexes() {
178 local rev=$1 233 local rev=$1
179 local label="archived_pexes_$2.tar.bz2" 234 local label="archived_pexes_$2.tar.bz2"
180 local tarball=$3 235 local tarball=$3
181 236 DownloadArchive toolchain/${rev}/${label} ${tarball}
182 curl -L ${URL_PREFIX_RAW}/${BASE_TOOLCHAIN_COMPONENT}/${rev}/${label} \
183 -o ${tarball}
184 } 237 }
185 238
186 UploadArchivedPexesTranslator() { 239 UploadArchivedPexesTranslator() {
187 UploadArchivedPexes $1 "translator" $2 240 UploadArchivedPexes $1 "translator" $2
188 } 241 }
189 242
190 DownloadArchivedPexesTranslator() { 243 DownloadArchivedPexesTranslator() {
191 DownloadArchivedPexes $1 "translator" $2 244 DownloadArchivedPexes $1 "translator" $2
192 } 245 }
193 246
194 UploadArchivedPexesSpec2k() { 247 UploadArchivedPexesSpec2k() {
195 UploadArchivedPexes $1 "spec2k" $2 248 UploadArchivedPexes $1 "spec2k" $2
196 } 249 }
197 250
198 DownloadArchivedPexesSpec2k() { 251 DownloadArchivedPexesSpec2k() {
199 DownloadArchivedPexes $1 "spec2k" $2 252 DownloadArchivedPexes $1 "spec2k" $2
200 } 253 }
201 ###################################################################### 254 ######################################################################
202 # ARM BETWEEN BOTS 255 # ARM BETWEEN BOTS
203 ###################################################################### 256 ######################################################################
204 257
205 UploadArmBinariesForHWBots() { 258 UploadArmBinariesForHWBots() {
206 local name=$1 259 local name=$1
207 local tarball=$2 260 local tarball=$2
208 Upload ${tarball} ${BASE_BETWEEN_BOTS}/${name}/$(basename ${tarball}) 261 UploadArchive between_builders/${name}/$(basename ${tarball}) ${tarball}
209 } 262 }
210 263
211 264
212 DownloadArmBinariesForHWBots() { 265 DownloadArmBinariesForHWBots() {
213 local name=$1 266 local name=$1
214 local tarball=$2 267 local tarball=$2
215 curl -L \ 268 DownloadArchive between_builders/${name}/$(basename ${tarball}) ${tarball}
216 ${URL_PREFIX_RAW}/${BASE_BETWEEN_BOTS}/${name}/$(basename ${tarball}) \
217 -o ${tarball}
218 } 269 }
219 270
220 ###################################################################### 271 ######################################################################
221 # ARM BETWEEN BOTS TRY 272 # ARM BETWEEN BOTS TRY
222 ###################################################################### 273 ######################################################################
223 274
224 UploadArmBinariesForHWBotsTry() { 275 UploadArmBinariesForHWBotsTry() {
225 local name=$1 276 local name=$1
226 local tarball=$2 277 local tarball=$2
227 Upload ${tarball} ${BASE_BETWEEN_BOTS_TRY}/${name}/$(basename ${tarball}) 278 UploadTrybot between_builders/${name}/$(basename ${tarball}) ${tarball}
228 } 279 }
229 280
230 281
231 DownloadArmBinariesForHWBotsTry() { 282 DownloadArmBinariesForHWBotsTry() {
232 local name=$1 283 local name=$1
233 local tarball=$2 284 local tarball=$2
234 curl -L \ 285 DownloadTrybot between_builders/${name}/$(basename ${tarball}) ${tarball}
235 ${URL_PREFIX_RAW}/${BASE_BETWEEN_BOTS_TRY}/${name}/$(basename ${tarball})\
236 -o ${tarball}
237 } 286 }
238 287
239 ###################################################################### 288 ######################################################################
240 # DISPATCH 289 # DISPATCH
241 ###################################################################### 290 ######################################################################
242 SanityCheck 291 SanityCheck
243 292
244 if [[ $# -eq 0 ]] ; then 293 if [[ $# -eq 0 ]] ; then
245 echo "you must specify a mode on the commandline:" 294 echo "you must specify a mode on the commandline:"
246 echo 295 echo
247 Usage 296 Usage
248 exit -1 297 exit -1
249 elif [[ "$(type -t $1)" != "function" ]]; then 298 elif [[ "$(type -t $1)" != "function" ]]; then
250 echo "ERROR: unknown function '$1'." >&2 299 echo "ERROR: unknown function '$1'." >&2
251 echo "For help, try:" 300 echo "For help, try:"
252 echo " $0 help" 301 echo " $0 help"
253 exit 1 302 exit 1
254 else 303 else
255 "$@" 304 "$@"
256 fi 305 fi
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698