From d0b6cfeca44d8a09e0cbfd3e754b4796fa429dd0 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Thu, 14 Oct 2021 11:40:55 +0100 Subject: [PATCH] Factor out common environment setup GHA steps --- .github/workflows/ci.yml | 38 ++--------------------------------- Tools/CI-linux-environment.sh | 27 +++++++++++++++++++++++++ Tools/CI-linux-install.sh | 2 +- 3 files changed, 30 insertions(+), 37 deletions(-) create mode 100644 Tools/CI-linux-environment.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c31ea2568..d1abbc404 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -258,24 +258,7 @@ jobs: - name: Configure run: | set -x - - # Repeat language specific environment setup - case "$SWIGLANG" in - javascript) - case "$ENGINE" in - node) - export NVM_DIR="$HOME/.nvm" - [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" - nvm use ${VER} - ;; - *) - esac - ;; - - ruby) - source $HOME/.rvm/scripts/rvm - ;; - esac + source Tools/CI-linux-environment.sh if test -n '${{ matrix.CONFIGOPTS }}'; then CONFIGOPTS=${{ matrix.CONFIGOPTS }} @@ -298,24 +281,7 @@ jobs: working-directory: build/build run: | set -x - - # Repeat language specific environment setup - case "$SWIGLANG" in - javascript) - case "$ENGINE" in - node) - export NVM_DIR="$HOME/.nvm" - [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" - nvm use ${VER} - ;; - *) - esac - ;; - - ruby) - source $HOME/.rvm/scripts/rvm - ;; - esac + source Tools/CI-linux-environment.sh if test -n "$CPP11"; then export CPPSTD=c++11; fi if test -n "$CPP14"; then export CPPSTD=c++14; fi diff --git a/Tools/CI-linux-environment.sh b/Tools/CI-linux-environment.sh new file mode 100644 index 000000000..d530f37a8 --- /dev/null +++ b/Tools/CI-linux-environment.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Expected to be called from elsewhere with same variables set as CI-linux-install.sh +# e.g. RETRY=travis-retry SWIGLANG=python +# Sets up environment for using various target languages +# For Github Actions where the environment is not preserved between steps +set -e # exit on failure (same as -o errexit) + +case "$SWIGLANG" in + "javascript") + case "$ENGINE" in + "node") + export NVM_DIR="$HOME/.nvm" + [ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh" + nvm use ${VER} + ;; + *) ;; + esac + ;; + "ruby") + if ! command -v rvm; then + set +x + source $HOME/.rvm/scripts/rvm + set -x + fi + ;; + *) ;; +esac diff --git a/Tools/CI-linux-install.sh b/Tools/CI-linux-install.sh index ab5b10ddb..7daa55e3e 100644 --- a/Tools/CI-linux-install.sh +++ b/Tools/CI-linux-install.sh @@ -1,5 +1,5 @@ #!/bin/bash -# expected to be called from elsewhere with certain variables set +# 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)