Jin Qian | a09060a | 2016-04-04 18:11:07 -0700 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | set -e |
| 3 | |
Jin Qian | 712517a | 2016-05-17 17:52:40 -0700 | [diff] [blame] | 4 | manual_mode=false |
Jin Qian | ed83461 | 2017-04-17 14:19:49 -0700 | [diff] [blame] | 5 | version=3.10 |
Jin Qian | 712517a | 2016-05-17 17:52:40 -0700 | [diff] [blame] | 6 | |
Jin Qian | ed83461 | 2017-04-17 14:19:49 -0700 | [diff] [blame] | 7 | while getopts "mv:" opt; do |
| 8 | case $opt in |
| 9 | m) manual_mode=true |
| 10 | ;; |
| 11 | v) version=$OPTARG |
| 12 | ;; |
| 13 | ?) echo "Usage: $0 [-m] [-v version]" |
| 14 | echo " -m: manually specify build numbers" |
| 15 | echo " -v: specify kernel version [default 3.10]" |
| 16 | exit 1 |
| 17 | ;; |
| 18 | esac |
| 19 | done |
| 20 | |
| 21 | if [[ "$version" != "3.10" && "$version" != "3.18" ]] |
Jin Qian | a09060a | 2016-04-04 18:11:07 -0700 | [diff] [blame] | 22 | then |
Jin Qian | ed83461 | 2017-04-17 14:19:49 -0700 | [diff] [blame] | 23 | echo "kernel version must be 3.10 or 3.18" |
Jin Qian | a09060a | 2016-04-04 18:11:07 -0700 | [diff] [blame] | 24 | exit 1 |
| 25 | fi |
| 26 | |
Jin Qian | 958dbb9 | 2016-12-08 12:49:43 -0800 | [diff] [blame] | 27 | fetchtool='sso_client -location -connect_timeout 60 -request_timeout 60 -url' |
Jin Qian | a09060a | 2016-04-04 18:11:07 -0700 | [diff] [blame] | 28 | build_server='https://android-build-uber.corp.google.com' |
| 29 | branch_prefix='kernel-n-dev-android-goldfish-' |
| 30 | |
| 31 | # kernel_img[branch]="build_server_output local_file_name" |
| 32 | declare -A kernel_img |
| 33 | |
Jin Qian | a3fcc92 | 2017-08-03 13:17:20 -0700 | [diff] [blame] | 34 | kernel_img[3.10-arm]="zImage arm/3.10/kernel-qemu" |
| 35 | kernel_img[3.10-arm64]="Image arm64/3.10/kernel-qemu" |
Miodrag Dinic | c804699 | 2017-08-23 11:28:34 +0200 | [diff] [blame] | 36 | kernel_img[3.10-mips]="vmlinux mips/3.10/kernel-qemu" |
| 37 | kernel_img[3.10-mips64]="vmlinux mips64/3.10/kernel-qemu" |
Jin Qian | a3fcc92 | 2017-08-03 13:17:20 -0700 | [diff] [blame] | 38 | kernel_img[3.10-x86]="bzImage x86/3.10/kernel-qemu" |
| 39 | kernel_img[3.10-x86_64]="bzImage x86_64/3.10/kernel-qemu" |
Jin Qian | a09060a | 2016-04-04 18:11:07 -0700 | [diff] [blame] | 40 | kernel_img[3.10-x86_64-qemu1]="bzImage x86_64/kernel-qemu" |
Jin Qian | c2d2a29 | 2016-10-31 14:15:38 -0700 | [diff] [blame] | 41 | kernel_img[3.18-arm]="zImage arm/3.18/kernel-qemu2" |
| 42 | kernel_img[3.18-arm64]="Image arm64/3.18/kernel-qemu2" |
| 43 | kernel_img[3.18-mips]="vmlinux mips/3.18/kernel-qemu2" |
| 44 | kernel_img[3.18-mips64]="vmlinux mips64/3.18/kernel-qemu2" |
| 45 | kernel_img[3.18-x86]="bzImage x86/3.18/kernel-qemu2" |
| 46 | kernel_img[3.18-x86_64]="bzImage x86_64/3.18/kernel-qemu2" |
Jin Qian | a09060a | 2016-04-04 18:11:07 -0700 | [diff] [blame] | 47 | |
Jin Qian | ed83461 | 2017-04-17 14:19:49 -0700 | [diff] [blame] | 48 | printf "Upgrade emulator kernels $version\n\n" > emu_kernel.commitmsg |
Jin Qian | a09060a | 2016-04-04 18:11:07 -0700 | [diff] [blame] | 49 | |
| 50 | for key in "${!kernel_img[@]}" |
| 51 | do |
Jin Qian | ed83461 | 2017-04-17 14:19:49 -0700 | [diff] [blame] | 52 | if [[ $key != $version* ]] |
| 53 | then |
| 54 | continue |
| 55 | fi |
| 56 | |
Jin Qian | a09060a | 2016-04-04 18:11:07 -0700 | [diff] [blame] | 57 | branch=$branch_prefix$key |
| 58 | branch_url=$build_server/builds/$branch-linux-kernel |
| 59 | |
| 60 | # Find the latest build by searching for highest build number since |
| 61 | # build server doesn't provide the "latest" link. |
| 62 | build=`$fetchtool $branch_url | \ |
| 63 | sed -rn "s/<li><a href=".*">([0-9]+)<\/a><\/li>/\1/p" | \ |
| 64 | sort -nr | head -n 1` |
| 65 | |
| 66 | if $manual_mode |
| 67 | then |
| 68 | read -p "Enter build number for $branch: [$build]" input |
| 69 | build="${input:-$build}" |
| 70 | fi |
| 71 | |
| 72 | echo Fetching build $build from branch $branch |
| 73 | |
| 74 | # file_info[0] - kernel image on build server |
| 75 | # file_info[1] - kernel image in local tree |
| 76 | file_info=(${kernel_img[$key]}) |
| 77 | |
| 78 | $fetchtool $branch_url/$build/${file_info[0]} > ${file_info[1]} |
| 79 | |
| 80 | git add ${file_info[1]} |
| 81 | |
| 82 | printf "$branch - build: $build\n" >> emu_kernel.commitmsg |
| 83 | done |
| 84 | |
Jin Qian | ed83461 | 2017-04-17 14:19:49 -0700 | [diff] [blame] | 85 | last_commit=`git log | \ |
| 86 | sed -rn "s/.*Upgrade $version kernel images to ([a-z0-9]+).*/\1/p" | \ |
Jin Qian | c2d2a29 | 2016-10-31 14:15:38 -0700 | [diff] [blame] | 87 | head -n 1` |
| 88 | |
Jin Qian | a09060a | 2016-04-04 18:11:07 -0700 | [diff] [blame] | 89 | if [ ! -d goldfish_cache ] |
| 90 | then |
| 91 | mkdir goldfish_cache |
| 92 | git clone https://android.googlesource.com/kernel/goldfish goldfish_cache |
| 93 | fi |
| 94 | |
| 95 | pushd goldfish_cache |
| 96 | |
| 97 | git fetch origin |
| 98 | |
Jin Qian | ed83461 | 2017-04-17 14:19:49 -0700 | [diff] [blame] | 99 | git checkout remotes/origin/android-goldfish-$version |
| 100 | tot_commit=`git log --oneline -1 | cut -d' ' -f1` |
| 101 | printf "\nUpgrade $version kernel images to ${tot_commit}\n" >> ../emu_kernel.commitmsg |
| 102 | git log --oneline HEAD...${last_commit} >> ../emu_kernel.commitmsg |
Jin Qian | c2d2a29 | 2016-10-31 14:15:38 -0700 | [diff] [blame] | 103 | |
Jin Qian | a09060a | 2016-04-04 18:11:07 -0700 | [diff] [blame] | 104 | popd |
| 105 | |
| 106 | git commit -t emu_kernel.commitmsg |
| 107 | |
| 108 | rm emu_kernel.commitmsg |
| 109 | |