summaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorKris Thielemans <k.thielemans@ucl.ac.uk>2021-08-01 16:49:08 +0100
committerKris Thielemans <k.thielemans@ucl.ac.uk>2021-08-01 22:28:00 +0100
commit901f399f8c60bf1a05e14c3b1a9de5c0e601d4dc (patch)
treedd53027466bddd46c3e1d2a99a2f28f5af5d559d /Tools
parenta2fc5ecaff561b4e3c6c8edc84d46a20eebae731 (diff)
downloadswig-901f399f8c60bf1a05e14c3b1a9de5c0e601d4dc.tar.gz
[CI] generalise travis-linux-install.sh
- move content to CI-linux-install.sh which is independent of Travis - create equivalent for Github Actions (GHA)
Diffstat (limited to 'Tools')
-rw-r--r--Tools/CI-linux-install.sh120
-rw-r--r--Tools/GHA-linux-install.sh9
-rwxr-xr-xTools/travis-linux-install.sh123
3 files changed, 134 insertions, 118 deletions
diff --git a/Tools/CI-linux-install.sh b/Tools/CI-linux-install.sh
new file mode 100644
index 000000000..9f3f93804
--- /dev/null
+++ b/Tools/CI-linux-install.sh
@@ -0,0 +1,120 @@
+#!/bin/bash
+# expected to be called from elsewhere with certain variables set
+# e.g. RETRY=travis-retry SWIGLANG=python GCC=7
+set -e # exit on failure (same as -o errexit)
+
+if [[ -n "$GCC" ]]; then
+ $RETRY sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
+ $RETRY sudo apt-get -qq update
+ $RETRY sudo apt-get install -qq g++-$GCC
+fi
+
+$RETRY sudo apt-get -qq install libboost-dev libpcre3-dev
+
+WITHLANG=$SWIGLANG
+
+case "$SWIGLANG" in
+ "") ;;
+ "csharp")
+ $RETRY sudo apt-get -qq install mono-devel
+ ;;
+ "d")
+ $RETRY wget http://downloads.dlang.org/releases/2.x/${VER}/dmd_${VER}-0_amd64.deb
+ $RETRY sudo dpkg -i dmd_${VER}-0_amd64.deb
+ ;;
+ "go")
+ if [[ "$VER" ]]; then
+ eval "$(gimme ${VER}.x)"
+ fi
+ ;;
+ "javascript")
+ case "$ENGINE" in
+ "node")
+ $RETRY wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash
+ export NVM_DIR="$HOME/.nvm"
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
+ $RETRY nvm install ${VER}
+ nvm use ${VER}
+ if [ "$VER" == "0.10" ] || [ "$VER" == "0.12" ] || [ "$VER" == "4" ] || [ "$VER" == "6" ] ; then
+# $RETRY sudo apt-get install -qq nodejs node-gyp
+ $RETRY npm install -g node-gyp@$VER
+ elif [ "$VER" == "8" ] ; then
+ $RETRY npm install -g node-gyp@6
+ elif [ "$VER" == "10" ] || [ "$VER" == "12" ] || [ "$VER" == "14" ] || [ "$VER" == "16" ]; then
+ $RETRY npm install -g node-gyp@7
+ else
+ $RETRY npm install -g node-gyp
+ fi
+ ;;
+ "jsc")
+ $RETRY sudo apt-get install -qq libwebkitgtk-dev
+ ;;
+ "v8")
+ $RETRY sudo apt-get install -qq libv8-dev
+ ;;
+ esac
+ ;;
+ "guile")
+ $RETRY sudo apt-get -qq install guile-2.0-dev
+ ;;
+ "lua")
+ if [[ -z "$VER" ]]; then
+ $RETRY sudo apt-get -qq install lua5.2 liblua5.2-dev
+ else
+ $RETRY sudo apt-get -qq install lua${VER} liblua${VER}-dev
+ fi
+ ;;
+ "mzscheme")
+ $RETRY sudo apt-get -qq install racket
+ ;;
+ "ocaml")
+ $RETRY sudo apt-get -qq install ocaml camlp4
+ ;;
+ "octave")
+ $RETRY sudo apt-get -qq install liboctave-dev
+ ;;
+ "php")
+ $RETRY sudo add-apt-repository -y ppa:ondrej/php
+ $RETRY sudo apt-get -qq update
+ $RETRY sudo apt-get -qq install php$VER-cli php$VER-dev
+ ;;
+ "python")
+ pip install --user pycodestyle
+ if [[ "$PY3" ]]; then
+ $RETRY sudo apt-get install -qq python3-dev
+ fi
+ WITHLANG=$SWIGLANG$PY3
+ if [[ "$VER" ]]; then
+ $RETRY sudo add-apt-repository -y ppa:deadsnakes/ppa
+ $RETRY sudo apt-get -qq update
+ $RETRY sudo apt-get -qq install python${VER}-dev
+ WITHLANG=$SWIGLANG$PY3=$SWIGLANG$VER
+ fi
+ ;;
+ "r")
+ $RETRY sudo apt-get -qq install r-base
+ ;;
+ "ruby")
+ if [[ "$VER" == "2.7" || "$VER" == "3.0" ]]; then
+ # Ruby 2.7+ support is currently only rvm master (30 Dec 2019)
+ $RETRY rvm get master
+ rvm reload
+ rvm list known
+ fi
+ if [[ "$VER" ]]; then
+ $RETRY rvm install $VER
+ fi
+ ;;
+ "scilab")
+ # Travis has the wrong version of Java pre-installed resulting in error using scilab:
+ # /usr/bin/scilab-bin: error while loading shared libraries: libjava.so: cannot open shared object file: No such file or directory
+ echo "JAVA_HOME was set to $JAVA_HOME"
+ unset JAVA_HOME
+ $RETRY sudo apt-get -qq install scilab
+ ;;
+ "tcl")
+ $RETRY sudo apt-get -qq install tcl-dev
+ ;;
+esac
+
+set +e # turn off exit on failure (same as +o errexit)
diff --git a/Tools/GHA-linux-install.sh b/Tools/GHA-linux-install.sh
new file mode 100644
index 000000000..ea2108fce
--- /dev/null
+++ b/Tools/GHA-linux-install.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+#lsb_release -a
+# find location of current script (only works in bash)
+script_dir="$( dirname "${BASH_SOURCE[0]}")"
+
+# run generic script
+RETRY=
+source "$script_dir"/CI-linux-install.sh
diff --git a/Tools/travis-linux-install.sh b/Tools/travis-linux-install.sh
index cb7d9d298..cda834112 100755
--- a/Tools/travis-linux-install.sh
+++ b/Tools/travis-linux-install.sh
@@ -2,123 +2,10 @@
# Install Linux packages where the version has been overidden in .travis.yml
-set -e # exit on failure (same as -o errexit)
-
lsb_release -a
-travis_retry sudo apt-get -qq update
-
-if [[ -n "$GCC" ]]; then
- travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
- travis_retry sudo apt-get -qq update
- travis_retry sudo apt-get install -qq g++-$GCC
-fi
-
-travis_retry sudo apt-get -qq install libboost-dev libpcre3-dev
-
-WITHLANG=$SWIGLANG
-
-case "$SWIGLANG" in
- "") ;;
- "csharp")
- travis_retry sudo apt-get -qq install mono-devel
- ;;
- "d")
- travis_retry wget http://downloads.dlang.org/releases/2.x/${VER}/dmd_${VER}-0_amd64.deb
- travis_retry sudo dpkg -i dmd_${VER}-0_amd64.deb
- ;;
- "go")
- if [[ "$VER" ]]; then
- eval "$(gimme ${VER}.x)"
- fi
- ;;
- "javascript")
- case "$ENGINE" in
- "node")
- travis_retry wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.10/install.sh | bash
- export NVM_DIR="$HOME/.nvm"
- [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
- travis_retry nvm install ${VER}
- nvm use ${VER}
- if [ "$VER" == "0.10" ] || [ "$VER" == "0.12" ] || [ "$VER" == "4" ] || [ "$VER" == "6" ] ; then
-# travis_retry sudo apt-get install -qq nodejs node-gyp
- travis_retry npm install -g node-gyp@$VER
- elif [ "$VER" == "8" ] ; then
- travis_retry npm install -g node-gyp@6
- elif [ "$VER" == "10" ] || [ "$VER" == "12" ] || [ "$VER" == "14" ] || [ "$VER" == "16" ]; then
- travis_retry npm install -g node-gyp@7
- else
- travis_retry npm install -g node-gyp
- fi
- ;;
- "jsc")
- travis_retry sudo apt-get install -qq libwebkitgtk-dev
- ;;
- "v8")
- travis_retry sudo apt-get install -qq libv8-dev
- ;;
- esac
- ;;
- "guile")
- travis_retry sudo apt-get -qq install guile-2.0-dev
- ;;
- "lua")
- if [[ -z "$VER" ]]; then
- travis_retry sudo apt-get -qq install lua5.2 liblua5.2-dev
- else
- travis_retry sudo apt-get -qq install lua${VER} liblua${VER}-dev
- fi
- ;;
- "mzscheme")
- travis_retry sudo apt-get -qq install racket
- ;;
- "ocaml")
- travis_retry sudo apt-get -qq install ocaml camlp4
- ;;
- "octave")
- travis_retry sudo apt-get -qq install liboctave-dev
- ;;
- "php")
- travis_retry sudo add-apt-repository -y ppa:ondrej/php
- travis_retry sudo apt-get -qq update
- travis_retry sudo apt-get -qq install php$VER-cli php$VER-dev
- ;;
- "python")
- pip install --user pycodestyle
- if [[ "$PY3" ]]; then
- travis_retry sudo apt-get install -qq python3-dev
- fi
- WITHLANG=$SWIGLANG$PY3
- if [[ "$VER" ]]; then
- travis_retry sudo add-apt-repository -y ppa:deadsnakes/ppa
- travis_retry sudo apt-get -qq update
- travis_retry sudo apt-get -qq install python${VER}-dev
- WITHLANG=$SWIGLANG$PY3=$SWIGLANG$VER
- fi
- ;;
- "r")
- travis_retry sudo apt-get -qq install r-base
- ;;
- "ruby")
- if [[ "$VER" == "2.7" || "$VER" == "3.0" ]]; then
- # Ruby 2.7+ support is currently only rvm master (30 Dec 2019)
- travis_retry rvm get master
- rvm reload
- rvm list known
- fi
- if [[ "$VER" ]]; then
- travis_retry rvm install $VER
- fi
- ;;
- "scilab")
- # Travis has the wrong version of Java pre-installed resulting in error using scilab:
- # /usr/bin/scilab-bin: error while loading shared libraries: libjava.so: cannot open shared object file: No such file or directory
- echo "JAVA_HOME was set to $JAVA_HOME"
- unset JAVA_HOME
- travis_retry sudo apt-get -qq install scilab
- ;;
- "tcl")
- travis_retry sudo apt-get -qq install tcl-dev
- ;;
-esac
+# find location of current script (only works in bash)
+script_dir="$( dirname "${BASH_SOURCE[0]}")"
-set +e # turn off exit on failure (same as +o errexit)
+# run generic script
+RETRY=travis-retry
+source "$script_dir"/CI-linux-install.sh