summaryrefslogtreecommitdiffstats
path: root/scripts/setup_travis.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/setup_travis.sh')
-rwxr-xr-xscripts/setup_travis.sh79
1 files changed, 79 insertions, 0 deletions
diff --git a/scripts/setup_travis.sh b/scripts/setup_travis.sh
new file mode 100755
index 0000000..5e4bbf0
--- /dev/null
+++ b/scripts/setup_travis.sh
@@ -0,0 +1,79 @@
+#!/usr/bin/env bash
+
+# stop on errors (nonzero exit codes), uninitialized vars
+set -eu
+
+toplevel=$(git rev-parse --show-toplevel)
+
+function setup_firefox {
+ # Install the latest version of geckodriver
+ version=$(curl -sI https://github.com/mozilla/geckodriver/releases/latest | grep -i "^Location: " | sed 's/.*\///' | tr -d '\r')
+
+ # check that we got something
+ if [ -z "$version" ]; then
+ echo "Failed to determine the latest geckodriver version!"
+ exit 1
+ fi
+
+ # Geckodriver distribution is MacOS or Linux specific
+ os="$(uname -s)"
+ if [[ $os == "Darwin" ]]; then
+ os_dist="macos.tar.gz"
+ else
+ os_dist="linux64.tar.gz"
+ fi
+
+ echo "Setting up geckodriver version $version ..."
+ url="https://github.com/mozilla/geckodriver/releases/download/${version}/geckodriver-${version}-${os_dist}"
+ wget -q -O /tmp/geckodriver.tar.gz "$url"
+ sudo tar -xvf /tmp/geckodriver.tar.gz -C /usr/local/bin/
+ sudo chmod a+x /usr/local/bin/geckodriver
+
+ # check that geckodriver is now present
+ type geckodriver >/dev/null 2>&1 || {
+ echo "Failed to install geckodriver!"
+ exit 1
+ }
+}
+
+function browser_setup {
+ # install python stuff
+ pip install -r "$toplevel"/tests/requirements.txt
+}
+
+function setup_lint {
+ # "--production" to skip installing devDependencies modules
+ npm install --production || exit 1
+}
+
+# check that the desired browser is present as it might fail to install
+# for example: https://travis-ci.org/EFForg/privacybadger/jobs/362381214
+function check_browser {
+ type "$BROWSER" >/dev/null 2>&1 || {
+ echo "$BROWSER seems to be missing!"
+ exit 1
+ }
+
+ # print the version
+ echo "Found $("$BROWSER" --version)"
+}
+
+case $INFO in
+ *chrome*)
+ check_browser
+ "$toplevel"/scripts/chromedriver.sh "$BROWSER"
+ browser_setup
+ ;;
+ *firefox*) # Install the latest version of geckodriver
+ check_browser
+ setup_firefox
+ browser_setup
+ ;;
+ *lint*)
+ setup_lint
+ ;;
+ *)
+ echo "bad INFO variable, got $INFO"
+ exit 1
+ ;;
+esac