mirror of
				https://github.com/OPM/opm-simulators.git
				synced 2025-02-25 18:55:30 -06:00 
			
		
		
		
	add multiconfiguration support to jenkins build script
also unifies build.sh and build-pr.sh and gets rid of build-opm-simulators.sh
This commit is contained in:
		@@ -1,41 +1,32 @@
 | 
			
		||||
# opm-simulators jenkins build scripts:
 | 
			
		||||
 | 
			
		||||
**build-opm-simulators.sh**:
 | 
			
		||||
This is a helper script which contains functions for building,
 | 
			
		||||
testing and cloning opm-simulators and its dependencies.
 | 
			
		||||
 | 
			
		||||
**build.sh**:
 | 
			
		||||
This script will build dependencies, then build opm-simulators and execute its tests.
 | 
			
		||||
It is intended for post-merge builds of the master branch.
 | 
			
		||||
 | 
			
		||||
**build-pr.sh**:
 | 
			
		||||
This script will build dependencies, then build opm-simulators and execute its tests.
 | 
			
		||||
It inspects the $ghbPrBuildComment environmental variable to obtain a pull request
 | 
			
		||||
to use for ert, opm-common, opm-parser, opm-material, opm-core and
 | 
			
		||||
opm-grid (defaults to master) and then builds $sha1 of opm-simulators.
 | 
			
		||||
It also inspects the $ghbPrBuildComment environmental variable and builds
 | 
			
		||||
downstreams if requested. It inspects the $ghbPrBuildComment
 | 
			
		||||
environmental variable to obtain a pull request to use for the modules.
 | 
			
		||||
 | 
			
		||||
It is intended for pre-merge builds of pull requests.
 | 
			
		||||
 | 
			
		||||
You can optionally specify a given pull request to use for ert, opm-common,
 | 
			
		||||
opm-parser, opm-material, opm-core and opm-grid through the trigger.
 | 
			
		||||
The trigger line needs to contain ert=<pull request number> and/or
 | 
			
		||||
opm-common=<pull request number> and/or opm-parser=<pull request number>
 | 
			
		||||
and/or opm-material=<pull request number>
 | 
			
		||||
and/or opm-core=<pull request number>
 | 
			
		||||
and/or opm-grid=<pull request number>
 | 
			
		||||
and/or opm-output=<pull request number>.
 | 
			
		||||
To specify a given pull request to use for upstreams and downstreams,
 | 
			
		||||
trigger line needs to contain <module-name>=<pull request number>.
 | 
			
		||||
 | 
			
		||||
To build with downstreams the trigger line needs to contain 'with downstreams'.
 | 
			
		||||
 | 
			
		||||
**run-spe.sh**:
 | 
			
		||||
This script will execute the SPE1, SPE3 and SPE9 cases, then compare against
 | 
			
		||||
OPM and Eclipse reference results. It is meant to be executed after either
 | 
			
		||||
of the two build scripts above.
 | 
			
		||||
OPM and Eclipse reference results. It is meant to be executed after a build.
 | 
			
		||||
The binary used used is from the build identified by the configuration
 | 
			
		||||
environment variable.
 | 
			
		||||
 | 
			
		||||
**run-norne.sh**:
 | 
			
		||||
This script will execute the Norne case, and generate a document with
 | 
			
		||||
plots of the results. It is meant to be executed after either
 | 
			
		||||
of the two build scripts above.
 | 
			
		||||
plots of the results. It is meant to be executed after a build.
 | 
			
		||||
The binary used used is from the build identified by the configuration
 | 
			
		||||
environment variable.
 | 
			
		||||
 | 
			
		||||
**run-polymer.sh**:
 | 
			
		||||
This script will execute the simple2D polymer case, then compare against
 | 
			
		||||
Eclipse reference results. It is meant to be executed after either
 | 
			
		||||
of the two build scripts above.
 | 
			
		||||
Eclipse reference results. It is meant to be executed after a build.
 | 
			
		||||
The binary used used is from the build identified by the configuration
 | 
			
		||||
environment variable.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,37 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
function build_opm_simulators {
 | 
			
		||||
  # Build opm-common
 | 
			
		||||
  pushd .
 | 
			
		||||
  mkdir -p $WORKSPACE/deps/opm-common
 | 
			
		||||
  cd $WORKSPACE/deps/opm-common
 | 
			
		||||
  git init .
 | 
			
		||||
  git remote add origin https://github.com/OPM/opm-common
 | 
			
		||||
  git fetch --depth 1 origin $OPM_COMMON_REVISION:branch_to_build
 | 
			
		||||
  test $? -eq 0 || exit 1
 | 
			
		||||
  git checkout branch_to_build
 | 
			
		||||
  popd
 | 
			
		||||
 | 
			
		||||
  source $WORKSPACE/deps/opm-common/jenkins/build-opm-module.sh
 | 
			
		||||
 | 
			
		||||
  pushd .
 | 
			
		||||
  mkdir -p serial/build-opm-common
 | 
			
		||||
  cd serial/build-opm-common
 | 
			
		||||
  build_module "-DCMAKE_INSTALL_PREFIX=$WORKSPACE/serial/install" 0 $WORKSPACE/deps/opm-common
 | 
			
		||||
  test $? -eq 0 || exit 1
 | 
			
		||||
  popd
 | 
			
		||||
 | 
			
		||||
  # Build upstreams
 | 
			
		||||
  build_upstreams
 | 
			
		||||
 | 
			
		||||
  # Setup opm-data
 | 
			
		||||
  source $WORKSPACE/deps/opm-common/jenkins/setup-opm-data.sh
 | 
			
		||||
 | 
			
		||||
  # Build opm-simulators
 | 
			
		||||
  pushd .
 | 
			
		||||
  mkdir serial/build-opm-simulators
 | 
			
		||||
  cd serial/build-opm-simulators
 | 
			
		||||
  build_module "-DCMAKE_PREFIX_PATH=$WORKSPACE/serial/install -DOPM_DATA_ROOT=$OPM_DATA_ROOT" 1 $WORKSPACE
 | 
			
		||||
  test $? -eq 0 || exit 1
 | 
			
		||||
  popd
 | 
			
		||||
}
 | 
			
		||||
@@ -1,41 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
source `dirname $0`/build-opm-simulators.sh
 | 
			
		||||
 | 
			
		||||
declare -a upstreams
 | 
			
		||||
upstreams=(ert
 | 
			
		||||
           opm-parser
 | 
			
		||||
           opm-output
 | 
			
		||||
           opm-material
 | 
			
		||||
           opm-core
 | 
			
		||||
           opm-grid)
 | 
			
		||||
 | 
			
		||||
declare -A upstreamRev
 | 
			
		||||
upstreamRev[ert]=master
 | 
			
		||||
upstreamRev[opm-parser]=master
 | 
			
		||||
upstreamRev[opm-material]=master
 | 
			
		||||
upstreamRev[opm-core]=master
 | 
			
		||||
upstreamRev[opm-grid]=master
 | 
			
		||||
upstreamRev[opm-output]=master
 | 
			
		||||
 | 
			
		||||
OPM_COMMON_REVISION=master
 | 
			
		||||
 | 
			
		||||
if grep -q "opm-common=" <<< $ghprbCommentBody
 | 
			
		||||
then
 | 
			
		||||
  OPM_COMMON_REVISION=pull/`echo $ghprbCommentBody | sed -r 's/.*opm-common=([0-9]+).*/\1/g'`/merge
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
for upstream in ${upstreams[*]}
 | 
			
		||||
do
 | 
			
		||||
  if grep -q "$upstream=" <<< $ghprbCommentBody
 | 
			
		||||
  then
 | 
			
		||||
    upstreamRev[$upstream]=pull/`echo $ghprbCommentBody | sed -r "s/.*$upstream=([0-9]+).*/\1/g"`/merge
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
echo "Building with opm-common=$OPM_COMMON_REVISION ert=${upstreamRev[ert]} opm-parser=${upstreamRev[opm-parser]} opm-material=${upstreamRev[opm-material]} opm-core=${upstreamRev[opm-core]} opm-grid=${upstreamRev[opm-grid]} opm-output=${upstreamRev[opm-output]} opm-simulators=$sha1"
 | 
			
		||||
 | 
			
		||||
build_opm_simulators
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
 | 
			
		||||
cp serial/build-opm-simulators/testoutput.xml .
 | 
			
		||||
@@ -1,9 +1,8 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
source `dirname $0`/build-opm-simulators.sh
 | 
			
		||||
 | 
			
		||||
declare -a upstreams
 | 
			
		||||
upstreams=(ert
 | 
			
		||||
upstreams=(opm-common
 | 
			
		||||
           ert
 | 
			
		||||
           opm-parser
 | 
			
		||||
           opm-output
 | 
			
		||||
           opm-material
 | 
			
		||||
@@ -11,6 +10,7 @@ upstreams=(ert
 | 
			
		||||
           opm-grid)
 | 
			
		||||
 | 
			
		||||
declare -A upstreamRev
 | 
			
		||||
upstreamRev[opm-common]=master
 | 
			
		||||
upstreamRev[ert]=master
 | 
			
		||||
upstreamRev[opm-parser]=master
 | 
			
		||||
upstreamRev[opm-material]=master
 | 
			
		||||
@@ -18,9 +18,32 @@ upstreamRev[opm-core]=master
 | 
			
		||||
upstreamRev[opm-grid]=master
 | 
			
		||||
upstreamRev[opm-output]=master
 | 
			
		||||
 | 
			
		||||
OPM_COMMON_REVISION=master
 | 
			
		||||
if grep -q "opm-common=" <<< $ghprbCommentBody
 | 
			
		||||
then
 | 
			
		||||
  upstreamRev[opm-common]=pull/`echo $ghprbCommentBody | sed -r 's/.*opm-common=([0-9]+).*/\1/g'`/merge
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
build_opm_simulators
 | 
			
		||||
# No downstreams currently
 | 
			
		||||
declare -a downstreams
 | 
			
		||||
declare -A downstreamRev
 | 
			
		||||
 | 
			
		||||
# Clone opm-common
 | 
			
		||||
pushd .
 | 
			
		||||
mkdir -p $WORKSPACE/deps/opm-common
 | 
			
		||||
cd $WORKSPACE/deps/opm-common
 | 
			
		||||
git init .
 | 
			
		||||
git remote add origin https://github.com/OPM/opm-common
 | 
			
		||||
git fetch --depth 1 origin ${upstreamRev[opm-common]}:branch_to_build
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
git checkout branch_to_build
 | 
			
		||||
popd
 | 
			
		||||
 | 
			
		||||
cp serial/build-opm-simulators/testoutput.xml .
 | 
			
		||||
source $WORKSPACE/deps/opm-common/jenkins/build-opm-module.sh
 | 
			
		||||
 | 
			
		||||
parseRevisions
 | 
			
		||||
printHeader opm-simulators
 | 
			
		||||
 | 
			
		||||
# Setup opm-data
 | 
			
		||||
source $WORKSPACE/deps/opm-common/jenkins/setup-opm-data.sh
 | 
			
		||||
 | 
			
		||||
build_module_full opm-simulators
 | 
			
		||||
 
 | 
			
		||||
@@ -5,8 +5,8 @@ cd deps/opm-data
 | 
			
		||||
 | 
			
		||||
# Run the norne case
 | 
			
		||||
cd norne
 | 
			
		||||
$WORKSPACE/serial/build-opm-simulators/bin/flow deck_filename=NORNE_ATW2013.DATA output_dir=OPM
 | 
			
		||||
$WORKSPACE/$configuration/build-opm-simulators/bin/flow deck_filename=NORNE_ATW2013.DATA output_dir=OPM
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
PATH=$WORKSPACE/serial/install/bin:$PATH ./plotwells.sh
 | 
			
		||||
PATH=$WORKSPACE/$configuration/install/bin:$PATH ./plotwells.sh
 | 
			
		||||
 | 
			
		||||
popd
 | 
			
		||||
 
 | 
			
		||||
@@ -5,12 +5,12 @@ cd deps/opm-data
 | 
			
		||||
 | 
			
		||||
# Run the simple2D polymer case
 | 
			
		||||
cd polymer_test_suite/simple2D
 | 
			
		||||
$WORKSPACE/serial/build-opm-simulators/bin/flow_polymer run.param
 | 
			
		||||
$WORKSPACE/$configuration/build-opm-simulators/bin/flow_polymer run.param
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
cd ../..
 | 
			
		||||
 | 
			
		||||
# Compare OPM with eclipse reference
 | 
			
		||||
PYTHONPATH=$WORKSPACE/serial/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py polymer_test_suite/simple2D/eclipse-simulation/ polymer_test_suite/simple2D/opm-simulation/ 2D_THREEPHASE_POLY_HETER 0.0006 0.004
 | 
			
		||||
PYTHONPATH=$WORKSPACE/$configuration/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py polymer_test_suite/simple2D/eclipse-simulation/ polymer_test_suite/simple2D/opm-simulation/ 2D_THREEPHASE_POLY_HETER 0.0006 0.004
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
 | 
			
		||||
popd
 | 
			
		||||
 
 | 
			
		||||
@@ -5,32 +5,32 @@ cd deps/opm-data
 | 
			
		||||
 | 
			
		||||
# Run the SPE1/3/9 cases
 | 
			
		||||
cd spe1
 | 
			
		||||
$WORKSPACE/serial/build-opm-simulators/bin/flow deck_filename=SPE1CASE2.DATA
 | 
			
		||||
$WORKSPACE/$configuration/build-opm-simulators/bin/flow deck_filename=SPE1CASE2.DATA
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
cd ..
 | 
			
		||||
cd spe3
 | 
			
		||||
$WORKSPACE/serial/build-opm-simulators/bin/flow max_iter=50 deck_filename=SPE3CASE1.DATA
 | 
			
		||||
$WORKSPACE/$configuration/build-opm-simulators/bin/flow max_iter=50 deck_filename=SPE3CASE1.DATA
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
cd ..
 | 
			
		||||
cd spe9
 | 
			
		||||
$WORKSPACE/serial/build-opm-simulators/bin/flow max_iter=50 deck_filename=SPE9_CP.DATA
 | 
			
		||||
$WORKSPACE/$configuration/build-opm-simulators/bin/flow max_iter=50 deck_filename=SPE9_CP.DATA
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
cd ..
 | 
			
		||||
 | 
			
		||||
# Compare OPM with eclipse reference
 | 
			
		||||
PYTHONPATH=$WORKSPACE/serial/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe1/eclipse-simulation/ spe1/ SPE1CASE2 0.01 0.01
 | 
			
		||||
PYTHONPATH=$WORKSPACE/$configuration/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe1/eclipse-simulation/ spe1/ SPE1CASE2 0.01 0.01
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
PYTHONPATH=$WORKSPACE/serial/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe3/eclipse-simulation/ spe3/ SPE3CASE1 0.02 0.02
 | 
			
		||||
PYTHONPATH=$WORKSPACE/$configuration/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe3/eclipse-simulation/ spe3/ SPE3CASE1 0.02 0.02
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
PYTHONPATH=$WORKSPACE/serial/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe9/eclipse-simulation/ spe9/ SPE9_CP 0.002 0.001
 | 
			
		||||
PYTHONPATH=$WORKSPACE/$configuration/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe9/eclipse-simulation/ spe9/ SPE9_CP 0.002 0.001
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
 | 
			
		||||
# Compare OPM with OPM reference
 | 
			
		||||
PYTHONPATH=$WORKSPACE/serial/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe1/opm-simulation-reference/ spe1/ SPE1CASE2 0.001 0.001
 | 
			
		||||
PYTHONPATH=$WORKSPACE/$configuration/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe1/opm-simulation-reference/ spe1/ SPE1CASE2 0.001 0.001
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
PYTHONPATH=$WORKSPACE/serial/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe3/opm-simulation-reference/ spe3/ SPE3CASE1 0.001 0.001
 | 
			
		||||
PYTHONPATH=$WORKSPACE/$configuration/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe3/opm-simulation-reference/ spe3/ SPE3CASE1 0.001 0.001
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
PYTHONPATH=$WORKSPACE/serial/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe9/opm-simulation-reference/ spe9/ SPE9_CP 0.002 0.007
 | 
			
		||||
PYTHONPATH=$WORKSPACE/$configuration/install/lib/python2.7/dist-packages/ python output_comparator/src/compare_eclipse.py spe9/opm-simulation-reference/ spe9/ SPE9_CP 0.002 0.007
 | 
			
		||||
test $? -eq 0 || exit 1
 | 
			
		||||
 | 
			
		||||
popd
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user