Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 52 additions & 36 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,61 +16,77 @@ addons:

env:
global:
#Oracle 11g XE R2 docker variables
# Docker variables:
- DOCKHER_HUB_REPO="${DOCKER_USER}/oracledb"
- ORACLE_VERSION=11g-r2-xe
- CONNECTION_STR='127.0.0.1:1521/XE'
- DOCKER_OPTIONS='--shm-size=1g'
# Docker database Env
- SQLCLI="$HOME/sqlcl/bin/sql"
- OJDBC_HOME="$HOME/sqlcl/lib"
- ORACLE_PWD="oracle"
- UT3_DOCKER_REPO="utplsqlv3/oracledb"
- DOCKHER_HUB_REPO="${DOCKER_BASE_TAG:-$UT3_DOCKER_REPO}"
# project variables

# SYS account password for DB - could be stored in Travis secrets
- ORACLE_SYS_PASS="oracle"
# Adding utPLSQL-cli to path - to be able to invoke "utplsql" from command line
- PATH=$PATH:${TRAVIS_BUILD_DIR}/utPLSQL-cli/bin
# Adding Oracle SQLCL to path - to be able to invoke "sql" from command line
- PATH=$PATH:${TRAVIS_BUILD_DIR}/sqlcl/bin

# Project-specific database variables
# used for creating the user in database, deploying source code and tests as well as executing the tests
- DB_USER=ut3_demo
- DB_PASS=LHZYPbWvYdu2ctp8
##utPLSQL variables
- DB_PASS=ut3_demo
#utPLSQL variables
- UTPLSQL_DIR="utPLSQL"
- ORA_SDTZ='Europe/London' #Needed as a client parameter
- TZ='Europe/London' #Needed as a DB Server parameter
##utPLSQL-cli variables
- UTPLSQL_CLI_VERSION="3.1.0"
- CACHE_DIR=$HOME/.cache
- MAVEN_HOME=/usr/local/maven
- MAVEN_CFG=$HOME/.m2
# Additionally, you need to set following variables as Travis secrets:
# DOCKER_USER
# DOCKER_PASSWORD
# ORACLE_OTN_USER
# ORACLE_OTN_PASSWORD
matrix:
- UTPLSQL_3_VERSION='develop'
- UTPLSQL_3_VERSION='v3.0.0' VERSION_PLACEHOLDER='utPLSQL - Version X.X.X.X'
- UTPLSQL_3_VERSION='v3.0.4' VERSION_PLACEHOLDER='X.X.X.X'
- UTPLSQL_3_VERSION='v3.1.1'
- UTPLSQL_VERSION='develop'
- UTPLSQL_VERSION='v3.0.0' VERSION_PLACEHOLDER='utPLSQL - Version X.X.X.X'
- UTPLSQL_VERSION='v3.0.4' VERSION_PLACEHOLDER='X.X.X.X'
- UTPLSQL_VERSION='v3.1.1'

cache:
pip: true
directories:
- $CACHE_DIR
- node_modules
- $MAVEN_CFG

before_install:
# download latest utPLSQL develop code
- git clone --depth=1 --branch=${UTPLSQL_3_VERSION} https://github.com/utPLSQL/utPLSQL.git ${UTPLSQL_DIR}
# download latest utPLSQL-cli release
- curl -Lk -o utPLSQL-cli.zip https://github.com/utPLSQL/utPLSQL-cli/releases/download/v${UTPLSQL_CLI_VERSION}/utPLSQL-cli.zip
# update version placeholder before install
- if [[ -n ${VERSION_PLACEHOLDER} ]] ; then sed -i "s/${VERSION_PLACEHOLDER}/${UTPLSQL_3_VERSION}/g" ${UTPLSQL_DIR}/source/core/ut_utils.pks; fi
# Download Oracle sqlcl
- .travis/install_sqlcl.sh -u ${ORACLE_OTN_USER} -p ${ORACLE_OTN_PASSWORD} -d ${CACHE_DIR} -o ${TRAVIS_BUILD_DIR}
# Check if Oracle sqlcl it is installed correctly
- sql -v


install:
# download and unzip utPLSQL-cli release
- curl -Lk -o utPLSQL-cli.zip "https://github.com/utPLSQL/utPLSQL-cli/releases/download/v3.1.6/utPLSQL-cli.zip"
- unzip utPLSQL-cli.zip && chmod -R u+x utPLSQL-cli
# get ojdbc.jar from Oracle using maven
- bash .travis/maven_cfg.sh
- bash .travis/install_sqlcl.sh
# download and run Oracle docker DB image
- bash .travis/start_db.sh
# copy ojdbc.jar from sqlcl to utPSLQL-cli so it can be visible to utPSLQL-cli
- cp sqlcl/lib/ojdbc8.jar utPLSQL-cli/lib && cp sqlcl/lib/orai18n.jar utPLSQL-cli/lib

# Download specified version of utPLSQL from utPLSQL github repo
# Allows any utPLSQL branch/tag name to be used
- git clone --depth=1 --branch=${UTPLSQL_VERSION} https://github.com/utPLSQL/utPLSQL.git ${UTPLSQL_DIR}

# Install utPLSQL
# update version placeholder before install
# This is only needed when downloading utPLSQL versions older than 3.1
- if [[ -n ${VERSION_PLACEHOLDER} ]] ; then sed -i "s/${VERSION_PLACEHOLDER}/${UTPLSQL_VERSION}/g" ${UTPLSQL_DIR}/source/core/ut_utils.pks; fi

- docker login -u "${DOCKER_USER}" -p "${DOCKER_PASSWORD}"
# download Oracle Database docker image from private repo and start the DB
- time docker pull ${DOCKHER_HUB_REPO}:${ORACLE_VERSION}
# start the docker container (DB)
- docker run -d --name ${ORACLE_VERSION} ${DOCKER_OPTIONS} -p 1521:1521 ${DOCKHER_HUB_REPO}:${ORACLE_VERSION}
# Wait for DB startup
- time docker logs -f ${ORACLE_VERSION} | grep -m 1 "DATABASE IS READY TO USE!" --line-buffered

# Install utPLSQL into the Database
- .travis/install_utplsql.sh
- .travis/setup_account.sh

install:
# Create the demo project DB user account
- source/setup_db_account.sh
# Install project sources and tests
- source/install.sh
- test/install.sh
Expand Down
71 changes: 0 additions & 71 deletions .travis/download.sh

This file was deleted.

66 changes: 56 additions & 10 deletions .travis/install_sqlcl.sh
Original file line number Diff line number Diff line change
@@ -1,20 +1,66 @@
#!/bin/bash
set -e

###############################3
# Declarations
###############################3
SCRIPT_DIR="$( dirname "${BASH_SOURCE[0]}" )"
SQLCL_FILE=sqlcl-18.3.0.259.2029.zip
cd .travis
AGREEMENT_URL="http://www.oracle.com/technetwork/developer-tools/sqlcl/downloads/index.html"
DOWNLOAD_URL="https://download.oracle.com/otn/java/sqldeveloper/${SQLCL_FILE}"
ZIP_TARGET_DIR=""
OTN_USER=""
OTN_PASS=""
OUTPUT_DIR=""

# Download if not present on cache dir.
if [ ! -f $CACHE_DIR/$SQLCL_FILE ]; then
# Call the casperjs script to return the download url. Then download the file using curl.
downloadFile() {
user=$1
pass=$2
agreementUrl=$3
downloadUrl=$4
outputFile=$5
echo "Signing-in"
downloadUrl=$(exec casperjs ${SCRIPT_DIR}/download.js ${user} ${pass} ${agreementUrl} ${downloadUrl})
downloadUrl=${downloadUrl%$'\r'}
echo "DownloadURL: $downloadUrl"
curl -o ${outputFile} -L "$downloadUrl"
}

###############################3
# Main script
###############################3

#Evaluate script input parameters
while getopts "p:u:d:o:" OPTNAME; do
case "${OPTNAME}" in
"d") ZIP_TARGET_DIR="${OPTARG}" ;;
"u") OTN_USER="${OPTARG}" ;;
"p") OTN_PASS="${OPTARG}" ;;
"o") OUTPUT_DIR="${OPTARG}" ;;
esac
done

#Check parameters
if [[ "${ZIP_TARGET_DIR}" == "" ]]; then
ZIP_TARGET_DIR="."
fi
if [[ "$OTN_USER" == "" ]] || [[ "$OTN_PASS" == "" ]]; then
echo "Error: Oracle OTN username/password not specified."
exit 1
fi
if [[ "$OUTPUT_DIR" == "" ]]; then
echo "Error: Output directory not specified"
exit 1
fi

if [[ ! -f "${ZIP_TARGET_DIR}/${SQLCL_FILE}" ]]; then
npm install -g phantomjs-prebuilt casperjs
bash download.sh -p sqlcl
mv $SQLCL_FILE $CACHE_DIR
echo "Downloading sqlcl from Oracle"
downloadFile ${OTN_USER} ${OTN_PASS} ${AGREEMENT_URL} ${DOWNLOAD_URL} "${ZIP_TARGET_DIR}/${SQLCL_FILE}"
else
echo "Installing sqlcl from cache..."
fi;

# Install sqlcl.
unzip -q $CACHE_DIR/$SQLCL_FILE -d $HOME

# Check if it is installed correctly.
$SQLCLI -v
echo "Unzipping sqlcl into: ${ZIP_TARGET_DIR}"
unzip -q "${ZIP_TARGET_DIR}/${SQLCL_FILE}" -d ${OUTPUT_DIR}
9 changes: 2 additions & 7 deletions .travis/install_utplsql.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,6 @@

set -ev

cd $UTPLSQL_DIR/source
cd ${UTPLSQL_DIR}/source

${SQLCLI} -S -L sys/${ORACLE_PWD}@//${CONNECTION_STR} AS SYSDBA @install_headless.sql

#${SQLCLI} -L -S sys/${ORACLE_PWD}@//${CONNECTION_STR} AS SYSDBA <<SQL
#grant select any dictionary to ut3;
#exit
#SQL
sql -S -L sys/${ORACLE_SYS_PASS}@//${CONNECTION_STR} AS SYSDBA @install_headless.sql
18 changes: 0 additions & 18 deletions .travis/maven_cfg.sh

This file was deleted.

62 changes: 0 additions & 62 deletions .travis/pom.xml

This file was deleted.

Loading