Files
soci/scripts/travis/script_empty.sh
T
Mateusz Łoskot 044629c96c [travis] Run release.sh as part of job building empty backend [skip appveyor]
If TRAVIS_BRANCH matches release/X.Y, then the once the Travs CI job
completes building the empty, it also does
- run release.sh to generate source archive for soci-X.Y.Z
- unpacks the archive
- runs a minimal test build of the source archive,
  equivalent to the main build run earlier by the job.

The purpose is to have a minimal procedure verifying the source code
archives generated for release.
2019-10-06 23:01:59 +02:00

67 lines
2.0 KiB
Bash
Executable File

#!/bin/bash -e
# Builds and tests SOCI backend empty at travis-ci.org
#
# Copyright (c) 2013 Mateusz Loskot <mateusz@loskot.net>
#
source ${TRAVIS_BUILD_DIR}/scripts/travis/common.sh
run_cmake_for_empty()
{
cmake \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} \
-DSOCI_ASAN=ON \
-DSOCI_TESTS=ON \
-DSOCI_STATIC=OFF \
-DSOCI_DB2=OFF \
-DSOCI_EMPTY=ON \
-DSOCI_FIREBIRD=OFF \
-DSOCI_MYSQL=OFF \
-DSOCI_ODBC=OFF \
-DSOCI_ORACLE=OFF \
-DSOCI_POSTGRESQL=OFF \
-DSOCI_SQLITE3=OFF \
..
}
run_cmake_for_empty
run_make
run_test
# Test release branch packaging and building from the package
if [[ "$TEST_RELEASE_PACKAGE" == "YES" ]] && [[ "$TRAVIS_BRANCH" =~ ^release/[3-9]\.[0-9]$ ]]; then
ME=`basename "$0"`
sudo apt-get update -qq -y
sudo apt-get install -qq -y python3.4-venv
SOCI_VERSION=$(cat "$TRAVIS_BUILD_DIR/include/soci/version.h" | grep -Po "(.*#define\s+SOCI_LIB_VERSION\s+.+)\K([3-9]_[0-9]_[0-9])" | sed "s/_/\./g")
if [[ ! "$SOCI_VERSION" =~ ^[4-9]\.[0-9]\.[0-9]$ ]]; then
echo "${ME} ERROR: Invalid format of SOCI version '$SOCI_VERSION'. Aborting."
exit 1
else
echo "${ME} INFO: Creating source package 'soci-${SOCI_VERSION}.tar.gz' from '$TRAVIS_BRANCH' branch"
fi
cd $TRAVIS_BUILD_DIR
$TRAVIS_BUILD_DIR/scripts/release.sh --use-local-branch $TRAVIS_BRANCH
if [[ ! -f "soci-${SOCI_VERSION}.tar.gz" ]]; then
echo "${ME} ERROR: Archive file 'soci-${SOCI_VERSION}.tar.gz' not found. Aborting."
exit 1
fi
echo "${ME} INFO: Unpacking source package 'soci-${SOCI_VERSION}.tar.gz'"
tar -xzf soci-${SOCI_VERSION}.tar.gz
echo "${ME} INFO: Building SOCI from source package 'soci-${SOCI_VERSION}.tar.gz'"
cd soci-${SOCI_VERSION}
mkdir _build
echo $PWD
run_cmake_for_empty
run_make
run_test
fi