golang.org/x/build@v0.0.0-20240506185731-218518f32b70/env/android-amd64-emu/create-vm.sh (about) 1 #!/bin/sh 2 # Copyright 2019 The Go Authors. All rights reserved. 3 # Use of this source code is governed by a BSD-style 4 # license that can be found in the LICENSE file. 5 6 set -e 7 set -x 8 9 ZONE=us-central1-f 10 DEBIAN=bullseye 11 TARGET_IMAGE=android-amd64-emu-$DEBIAN 12 13 TMP_DISK=dev-android-amd64-emu-tmpdisk 14 TMP_IMG=dev-android-amd64-emu-image 15 TMP_VM=dev-android-amd64-emu 16 17 # Create disk, forking our vmx-enabled image 18 gcloud compute disks delete $TMP_DISK --zone=$ZONE --quiet || true 19 gcloud compute disks create $TMP_DISK \ 20 --zone=$ZONE \ 21 --size=40GB \ 22 --image=debian-$DEBIAN-vmx 23 24 gcloud compute images delete $TMP_IMG --quiet || true 25 gcloud compute images create \ 26 $TMP_IMG \ 27 --source-disk=$TMP_DISK \ 28 --source-disk-zone=$ZONE 29 30 # No longer need that temp disk: 31 gcloud compute disks delete $TMP_DISK --zone=$ZONE --quiet 32 33 # Create the VM 34 gcloud compute instances delete --zone=$ZONE $TMP_VM --quiet || true 35 gcloud compute instances create \ 36 $TMP_VM \ 37 --zone=$ZONE \ 38 --image=$TMP_IMG \ 39 --min-cpu-platform "Intel Haswell" \ 40 --network default-vpc \ 41 --no-service-account --no-scopes 42 43 echo "Waiting for SSH port to be available..." 44 while ! gcloud compute ssh $TMP_VM --zone=$ZONE --tunnel-through-iap -- echo hi; do 45 sleep 1 46 done 47 48 echo "SSH is up. Pulling docker container $CONTAINER on VM..." 49 50 gcloud compute ssh $TMP_VM --zone=$ZONE --tunnel-through-iap -- sudo docker pull gcr.io/symbolic-datum-552/android-amd64-emu:latest 51 52 echo "Done pulling; shutting down" 53 54 # Shut it down so it's a stable source to snapshot from. 55 gcloud compute instances stop $TMP_VM --zone=$ZONE 56 57 # Now make the new image from our instance's disk. 58 gcloud compute images delete $TARGET_IMAGE --quiet || true 59 gcloud compute images create $TARGET_IMAGE --source-disk=$TMP_VM --source-disk-zone=$ZONE 60 61 gcloud compute images delete $TMP_IMG --quiet 62 63 64 echo "Done."