You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

87 lines
2.7 KiB

#!/bin/bash
# restore maven dependencies downloaded in a previous build,
# so they do not have to be downloaded again.
# /tmp/artifacts will only be present in the incremental build scenario
# in which the target image name is an existing docker image which contains
# dependencies from a prior build execution.
function restore_saved_artifacts() {
if [ -f /tmp/artifacts/maven.tar.gz ]; then
pushd / &> /dev/null
echo -n "Restoring saved artifacts from prior build..."
tar zxf /tmp/artifacts/maven.tar.gz
echo "...done"
popd &> /dev/null
fi
}
# Source code provided to STI will be bind-mounted at /tmp/src
# and then copied into /opt/wildfly/source for building.
local_source_dir=/opt/wildfly/source
mkdir -p $local_source_dir
# Resulting WAR files will be deployed to /wildfly/standalone/deployments
deploy_dir=/wildfly/standalone/deployments
mkdir -p $deploy_dir
# Copy the source from the bind mount in preparation for compilation
cp -ad /tmp/src/* $local_source_dir
# If a pom.xml is present, this is a normal build scenario
# so run maven.
if [ -f "$local_source_dir/pom.xml" ]; then
# restore any maven dependencies which will be present if this is an
# incremental build
restore_saved_artifacts
pushd $local_source_dir &> /dev/null
JAVA_HOME=/etc/alternatives/java_sdk_1.7.0
mvn clean package -Popenshift -DskipTests
err=$?
if [ $err -ne 0 ]; then
echo "Aborting due to error code $err from mvn package"
exit $err
fi
echo "Copying built war files into $deploy_dir for later deployment..."
if [ -d $local_source_dir/target ]; then
cp $local_source_dir/target/*.war $deploy_dir >& /dev/null
fi
if [ -d $local_source_dir/deployments ]; then
cp $local_source_dir/deployments/*.war $deploy_dir >& /dev/null
fi
if [ -d $local_source_dir/cfg ]; then
echo "Copying config files from project..."
cp cfg/* /wildfly/standalone/configuration
fi
if [ -d $local_source_dir/modules ]; then
echo "Copying modules from project..."
mkdir /wildfly/provided_modules
cp -r modules/* /wildfly/provided_modules
fi
echo "...done"
popd &> /dev/null
else
echo "Copying binaries in source directory into $deploy_dir for later deployment..."
if [ -d $local_source_dir/target ]; then
cp $local_source_dir/target/*.war $deploy_dir >& /dev/null
fi
if [ -d $local_source_dir/deployments ]; then
cp $local_source_dir/deployments/*.war $deploy_dir >& /dev/null
fi
if [ -d $local_source_dir/cfg ]; then
echo "Copying config files from project..."
cp cfg/* /wildfly/standalone/configuration
fi
if [ -d $local_source_dir/modules ]; then
echo "Copying modules from project..."
mkdir /wildfly/provided_modules
cp -r modules/* /wildfly/provided_modules
fi
echo "...done"
fi