| #!/bin/bash |
| # |
| # Copyright 2015 The Bazel Authors. All rights reserved. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # Script to configure a mac machine. |
| # |
| # Before running this script install the JDK 8 and Xcode. Launch this script |
| # as the "ci" user. |
| # |
| # You should answer yes to all license requests and type your password |
| # when requested. |
| |
| set -eu |
| |
| # Command-line parameters |
| if [ ! $# -eq 1 ]; then |
| echo "Usage: setup_mac.sh <nodename>" |
| exit 1 |
| fi |
| node_name=$1 |
| |
| # Test that we can sudo |
| if ! sudo /usr/bin/true; then |
| echo "The CI user must have sudo right" |
| exit |
| fi |
| |
| cd $HOME |
| |
| # Write the node name |
| echo -n ${node_name} > $HOME/node_name |
| |
| # Try to accept Xcode license |
| sudo git version |
| |
| # Set the machine to never sleep |
| sudo systemsetup -setcomputersleep Never |
| |
| # Set the max number of files, see https://github.com/bazelbuild/bazel/issues/2422 |
| sudo sysctl -w kern.maxfiles=16384 |
| echo "kern.maxfiles=16384" | sudo tee -a /etc/sysctl.conf |
| |
| # Url to fetch other scripts |
| # We use script from HEAD, ideally we would use the same commit hash |
| # than this script but it is not really easy and we generally do not |
| # want to run that script from something else than HEAD. |
| MAC_SETUP_BASE_URL="${MAC_SETUP_BASE_URL-https://raw.githubusercontent.com/bazelbuild/continuous-integration/master/}" |
| |
| # Install Bazel |
| curl "${MAC_SETUP_BASE_URL}/gce/bootstrap-bazel.sh" | bash |
| |
| # Install Android SDK |
| curl "${MAC_SETUP_BASE_URL}/mac/mac-android.sh" | bash |
| |
| # Install Node JS |
| curl "${MAC_SETUP_BASE_URL}/mac/mac-nodejs.sh" | bash |
| |
| # Install the service |
| curl "${MAC_SETUP_BASE_URL}/mac/mac-service.sh" | bash |