Merge pull request #1058 from akva2/add_multiconfiguration
add multiconfiguration support to jenkins build script
This commit is contained in:
commit
8329dc7474
@ -1,21 +1,14 @@
|
|||||||
# opm-core jenkins build scripts:
|
# opm-core jenkins build scripts:
|
||||||
|
|
||||||
**build-opm-core.sh**:
|
|
||||||
This is a helper script which contains a function for building,
|
|
||||||
testing and cloning opm-core and its dependencies.
|
|
||||||
|
|
||||||
**build.sh**:
|
**build.sh**:
|
||||||
This script will build dependencies, then build opm-core and execute its tests.
|
This script will build dependencies, then build opm-core and execute its tests.
|
||||||
It is intended for post-merge builds of the master branch.
|
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.
|
||||||
|
|
||||||
**build-pr.sh**:
|
It is intended for pre-merge builds of pull requests.
|
||||||
This script will build dependencies, then build opm-core and execute its tests.
|
|
||||||
It inspects the $ghbPrBuildComment environmental variable to obtain a pull request
|
|
||||||
to use for ert, opm-common, opm-parser and opm-material (defaults to master)
|
|
||||||
and then builds $sha1 of opm-core. It is intended for pre-merge builds of pull requests.
|
|
||||||
|
|
||||||
You can optionally specify a given pull request to use for ert, opm-common,
|
To specify a given pull request to use for upstreams and downstreams,
|
||||||
opm-parser and opm-material through the trigger.
|
trigger line needs to contain <module-name>=<pull request number>.
|
||||||
The trigger line needs to contain ert=<pull request number> and/or
|
|
||||||
opm-common=<pull request number> and/or opm-parser=<pull request number>
|
To build with downstreams the trigger line needs to contain 'with downstreams'.
|
||||||
and/or opm-material=<pull request number>.
|
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
function build_opm_core {
|
|
||||||
# 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
|
|
||||||
popd
|
|
||||||
|
|
||||||
build_upstreams
|
|
||||||
|
|
||||||
# Build opm-core
|
|
||||||
pushd .
|
|
||||||
mkdir serial/build-opm-core
|
|
||||||
cd serial/build-opm-core
|
|
||||||
build_module "-DCMAKE_INSTALL_PREFIX=$WORKSPACE/serial/install -DCMAKE_PREFIX_PATH=$WORKSPACE/serial/install" 1 $WORKSPACE
|
|
||||||
test $? -eq 0 || exit 1
|
|
||||||
popd
|
|
||||||
}
|
|
@ -1,63 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
source `dirname $0`/build-opm-core.sh
|
|
||||||
|
|
||||||
# Upstream revisions
|
|
||||||
declare -a upstreams
|
|
||||||
upstreams=(ert
|
|
||||||
opm-parser
|
|
||||||
opm-material
|
|
||||||
opm-output)
|
|
||||||
|
|
||||||
declare -A upstreamRev
|
|
||||||
upstreamRev[ert]=master
|
|
||||||
upstreamRev[opm-parser]=master
|
|
||||||
upstreamRev[opm-material]=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-output=${upstreamRev[opm-output]} opm-core=$sha1"
|
|
||||||
|
|
||||||
build_opm_core
|
|
||||||
test $? -eq 0 || exit 1
|
|
||||||
|
|
||||||
# If no downstream builds we are done
|
|
||||||
if ! grep -q "with downstreams" <<< $ghprbCommentBody
|
|
||||||
then
|
|
||||||
cp serial/build-opm-core/testoutput.xml .
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
source $WORKSPACE/deps/opm-common/jenkins/setup-opm-data.sh
|
|
||||||
source $WORKSPACE/deps/opm-common/jenkins/build-opm-module.sh
|
|
||||||
|
|
||||||
# Downstream revisions
|
|
||||||
declare -a downstreams
|
|
||||||
downstreams=(opm-grid
|
|
||||||
opm-simulators
|
|
||||||
opm-upscaling
|
|
||||||
ewoms)
|
|
||||||
|
|
||||||
declare -A downstreamRev
|
|
||||||
downstreamRev[opm-grid]=master
|
|
||||||
downstreamRev[opm-simulators]=master
|
|
||||||
downstreamRev[opm-upscaling]=master
|
|
||||||
downstreamRev[ewoms]=master
|
|
||||||
|
|
||||||
build_downstreams opm-core
|
|
||||||
|
|
||||||
test $? -eq 0 || exit 1
|
|
@ -1,23 +1,57 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
source `dirname $0`/build-opm-core.sh
|
|
||||||
|
|
||||||
# Upstream revisions
|
|
||||||
declare -a upstreams
|
declare -a upstreams
|
||||||
upstreams=(ert
|
upstreams=(opm-common
|
||||||
|
ert
|
||||||
opm-parser
|
opm-parser
|
||||||
opm-material
|
opm-material
|
||||||
opm-output)
|
opm-output)
|
||||||
|
|
||||||
declare -A upstreamRev
|
declare -A upstreamRev
|
||||||
|
upstreamRev[opm-common]=master
|
||||||
upstreamRev[ert]=master
|
upstreamRev[ert]=master
|
||||||
upstreamRev[opm-parser]=master
|
upstreamRev[opm-parser]=master
|
||||||
upstreamRev[opm-material]=master
|
upstreamRev[opm-material]=master
|
||||||
upstreamRev[opm-output]=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_core
|
# Downstream revisions
|
||||||
|
declare -a downstreams
|
||||||
|
downstreams=(opm-grid
|
||||||
|
opm-simulators
|
||||||
|
opm-upscaling
|
||||||
|
ewoms)
|
||||||
|
|
||||||
|
declare -A downstreamRev
|
||||||
|
downstreamRev[opm-grid]=master
|
||||||
|
downstreamRev[opm-simulators]=master
|
||||||
|
downstreamRev[opm-upscaling]=master
|
||||||
|
downstreamRev[ewoms]=master
|
||||||
|
|
||||||
|
# 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
|
test $? -eq 0 || exit 1
|
||||||
|
git checkout branch_to_build
|
||||||
|
popd
|
||||||
|
|
||||||
cp serial/build-opm-core/testoutput.xml .
|
source $WORKSPACE/deps/opm-common/jenkins/build-opm-module.sh
|
||||||
|
|
||||||
|
parseRevisions
|
||||||
|
printHeader opm-core
|
||||||
|
|
||||||
|
# Setup opm-data
|
||||||
|
if grep -q "with downstreams" <<< $ghprbCommentBody
|
||||||
|
then
|
||||||
|
source $WORKSPACE/deps/opm-common/jenkins/setup-opm-data.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
build_module_full opm-core
|
||||||
|
Loading…
Reference in New Issue
Block a user