privileged-setup.sh (2128B)
1 #!/bin/bash 2 # This Source Code Form is subject to the terms of the Mozilla Public 3 # License, v. 2.0. If a copy of the MPL was not distributed with this 4 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 6 set -vex 7 8 . ./updatebot-version.sh # Get UPDATEBOT_REVISION 9 10 export DEBIAN_FRONTEND=noninteractive 11 12 # Update apt-get lists 13 apt-get update -y 14 15 # Install dependencies 16 apt-get install -y --no-install-recommends \ 17 ca-certificates \ 18 cloudsql-proxy \ 19 curl \ 20 ed \ 21 golang-go \ 22 gcc \ 23 libc6-dev \ 24 meson \ 25 php-cli \ 26 php-curl \ 27 python3-minimal \ 28 python3-wheel \ 29 python3-pip \ 30 python3-venv \ 31 python3-requests \ 32 python3-requests-unixsocket \ 33 python3-setuptools \ 34 openssh-client \ 35 rsync \ 36 wget 37 38 mkdir -p /builds/worker/.mozbuild 39 chown -R worker:worker /builds/worker/ 40 export GOPATH=/builds/worker/go 41 42 # Install specific version of Arcanist 43 pushd /builds/worker/.mozbuild/ 44 git clone https://github.com/phacility/arcanist.git 45 cd arcanist 46 git checkout e50d1bc4eabac9c37e3220e9f3fb8e37ae20b957 47 ln -s /builds/worker/.mozbuild/arcanist/bin/arc /usr/local/bin/arc 48 popd 49 50 . install-node-for-pdfjs.sh 51 52 # pdf.js setup 53 # We want to aviod downloading a ton of packages all the time, so 54 # we will preload the pdf.js repo (and packages) in the Docker image 55 # and only update it at runtime. This means that the `./mach vendor` 56 # behavior for pdf.js will also be kind of custom 57 npm install -g gulp-cli 58 cd /builds/worker/ 59 git clone https://github.com/mozilla/pdf.js.git 60 cd /builds/worker/pdf.js 61 npm ci --legacy-peer-deps 62 63 # seed a v8 repository because it's large, and doing an update will 64 # be much faster than a new clone each time. 65 cd /builds/worker/ 66 git clone https://github.com/v8/v8.git 67 68 # Check out source code 69 cd /builds/worker/ 70 git clone https://github.com/mozilla-services/updatebot.git 71 cd updatebot 72 git checkout "$UPDATEBOT_REVISION" 73 74 # Set up dependencies 75 cd /builds/worker/ 76 chown -R worker:worker . 77 chown -R worker:worker .* 78 79 python3 -m pip install --break-system-packages -U pip 80 python3 -m pip install --break-system-packages poetry==2.1.1 81 82 rm -rf /setup