Skip to content

Commit e4c67a9

Browse files
authored
Merge pull request #1162 from utPLSQL/feature/build_process_improvements
Feature/build process improvements
2 parents 9388cb3 + 78ae58d commit e4c67a9

15 files changed

+126
-72
lines changed

.travis.yml

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ env:
2525
- UT3_TESTER_HELPER=UT3_TESTER_HELPER
2626
- UT3_TESTER_HELPER_PASSWORD=ut3
2727
- UT3_TABLESPACE=users
28+
- BUILD_DIR=${TRAVIS_BUILD_DIR}
29+
- JOB_ID=${TRAVIS_JOB_ID}
30+
- JOB_NUMBER=${TRAVIS_JOB_NUMBER}
31+
- PULL_REQUEST_NAME=${TRAVIS_PULL_REQUEST}
32+
- PULL_REQUEST_BRANCH=${TRAVIS_PULL_REQUEST_BRANCH}
33+
- TAG_NAME=${TRAVIS_TAG}
34+
- REPO_SLUG=${TRAVIS_REPO_SLUG}
35+
- PR_SLUG=${TRAVIS_PULL_REQUEST_SLUG}
36+
- BRANCH_NAME=${TRAVIS_BRANCH}
2837
# Environment for building a release
2938
- CURRENT_BRANCH=${TRAVIS_BRANCH}
3039
- UTPLSQL_REPO="utPLSQL/utPLSQL"
@@ -35,25 +44,28 @@ env:
3544
- UTPLSQL_BUILD_USER_NAME="Travis CI"
3645
- CACHE_DIR=$HOME/.cache
3746
# Database Env
38-
- SQLCLI="$HOME/sqlcl/bin/sql"
39-
- OJDBC_HOME="$HOME/sqlcl/lib"
47+
- SQLCLI="${BUILD_DIR}/sqlcl/bin/sql"
48+
- OJDBC_HOME="${BUILD_DIR}/ojdbc"
4049
- ORACLE_PWD="oracle"
41-
- UT3_DOCKER_REPO="utplsqlv3/oracledb"
42-
- DOCKHER_HUB_REPO="${DOCKER_BASE_TAG:-$UT3_DOCKER_REPO}"
50+
- DOCKHER_HUB_REPO="utplsqlv3/oracledb"
51+
- DOCKER_VOLUME="/home/oracle/host"
52+
- DOCKER_ENV="-e SQLCLI=sqlplus -e UT3_DEVELOP_SCHEMA -e UT3_DEVELOP_SCHEMA_PASSWORD -e UT3_RELEASE_VERSION_SCHEMA -e UT3_RELEASE_VERSION_SCHEMA_PASSWORD -e UT3_USER -e UT3_USER_PASSWORD -e UT3_TESTER -e UT3_TESTER_PASSWORD -e UT3_TESTER_HELPER -e UT3_TESTER_HELPER_PASSWORD -e UT3_TABLESPACE -e ORACLE_PWD -e CONNECTION_STR -e UTPLSQL_DIR"
4353
#utPLSQL released version directory
4454
- UTPLSQL_DIR="utPLSQL_latest_release"
4555
- SELFTESTING_BRANCH=${TRAVIS_BRANCH}
4656
- UTPLSQL_CLI_VERSION="3.1.8"
4757
# Maven
4858
- MAVEN_HOME=/usr/local/maven
4959
- MAVEN_CFG=$HOME/.m2
50-
matrix:
51-
- ORACLE_VERSION="${DOCKER_TAG_11G:-11g-r2-xe}" CONNECTION_STR='127.0.0.1:1521/XE' DOCKER_OPTIONS='--shm-size=1g'
52-
- ORACLE_VERSION="${DOCKER_TAG_12C:-12c-r1-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
53-
- ORACLE_VERSION="${DOCKER_TAG_12C2:-12c-r2-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
54-
- ORACLE_VERSION="${DOCKER_TAG_18:-18c-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
55-
- ORACLE_VERSION="${DOCKER_TAG_19:-19c-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
56-
- ORACLE_VERSION="${DOCKER_TAG_21XE:-21c-xe-full}" CONNECTION_STR='127.0.0.1:1521/XEPDB1' DOCKER_OPTIONS='-e ORACLE_PASSWORD=oracle'
60+
jobs:
61+
- ORACLE_VERSION="11g-r2-xe" CONNECTION_STR='127.0.0.1:1521/XE' DOCKER_VOLUME="/mnt/host" DOCKER_OPTIONS='--shm-size=1g'
62+
# - ORACLE_VERSION="11-full" CONNECTION_STR='127.0.0.1:1521/XE' DOCKHER_HUB_REPO="gvenzl/oracle-xe" DOCKER_OPTIONS='-e ORACLE_PASSWORD=oracle --shm-size=1g' DOCKER_VOLUME="/mnt/host"
63+
- ORACLE_VERSION="12c-r1-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
64+
- ORACLE_VERSION="12c-r2-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
65+
- ORACLE_VERSION="18-slim" CONNECTION_STR='127.0.0.1:1521/XEPDB1' DOCKHER_HUB_REPO="gvenzl/oracle-xe" DOCKER_OPTIONS='-e ORACLE_PASSWORD=oracle'
66+
- ORACLE_VERSION="18c-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
67+
- ORACLE_VERSION="19c-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
68+
- ORACLE_VERSION="21-full" CONNECTION_STR='127.0.0.1:1521/XEPDB1' DOCKHER_HUB_REPO="gvenzl/oracle-xe" DOCKER_OPTIONS='-e ORACLE_PASSWORD=oracle'
5769

5870
cache:
5971
pip: true
@@ -73,24 +85,29 @@ before_install:
7385
#Allow for sonar to blame issues
7486
- git fetch --unshallow
7587
# download latest utPLSQL release
76-
#- curl -LOk $(curl --silent https://api.github.com/repos/utPLSQL/utPLSQL/releases/latest | awk '/browser_download_url/ { print $2 }' | grep ".zip" | sed 's/"//g')
7788
- git clone --depth=1 --branch=${SELFTESTING_BRANCH:-main} https://github.com/utPLSQL/utPLSQL.git $UTPLSQL_DIR
7889
# download latest utPLSQL-cli release
7990
- curl -Lk -o utPLSQL-cli.zip https://github.com/utPLSQL/utPLSQL-cli/releases/download/v${UTPLSQL_CLI_VERSION}/utPLSQL-cli.zip
8091

8192
install:
82-
#- unzip utPLSQL.zip
8393
- unzip utPLSQL-cli.zip && chmod -R u+x utPLSQL-cli
84-
- bash .travis/install_sqlcl.sh
94+
# - curl -Lk -o sqlcl-latest.zip https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip
95+
# - unzip -q sqlcl-latest.zip -d $HOME
96+
- mkdir -p ${OJDBC_HOME} #get JDBC driver and orai18n
97+
- curl -Lk -o ${OJDBC_HOME}/ojdbc8.jar https://download.oracle.com/otn-pub/otn_software/jdbc/213/ojdbc8.jar
98+
- curl -Lk -o ${OJDBC_HOME}/orai18n.jar https://download.oracle.com/otn-pub/otn_software/jdbc/213/orai18n.jar
99+
# Chmod is needed to allow for write access within from docker container volume
100+
- chmod -R go+w ./{source,test,examples,${UTPLSQL_DIR}/source}
85101
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/start_db.sh; fi
102+
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/install.sh; fi
103+
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/install_utplsql_release.sh; fi
86104

87105
before_script:
88-
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/install.sh; fi
89-
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/install_utplsql_release.sh; fi
90-
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/run_examples.sh; fi
106+
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/run_examples.sh; fi
107+
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/test/install_tests.sh; fi
91108

92109
script:
93-
- if [[ ! $TRAVIS_TAG ]]; then bash test/install_and_run_tests.sh; fi
110+
- if [[ ! $TRAVIS_TAG ]]; then bash test/run_tests.sh; fi
94111
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/validate_report_files.sh; fi
95112
- if [[ ! $TRAVIS_TAG ]] && [[ ("${TRAVIS_REPO_SLUG}" = "${UTPLSQL_REPO}" && "${TRAVIS_PULL_REQUEST}" == false) || ("${TRAVIS_PULL_REQUEST_SLUG}" = "${UTPLSQL_REPO}") ]]; then bash .travis/run_sonar_scanner.sh; fi
96113
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/coveralls_uploader.sh; fi

.travis/coveralls_uploader.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ fs.readFile('../coverage.json',function (err,data) {
1414
return console.log(err);
1515
}
1616
req = JSON.parse(data);
17-
req.service_job_id = process.env.TRAVIS_JOB_ID;
17+
req.service_job_id = process.env.JOB_ID;
1818
req.service_name = 'travis-ci';
1919
if (process.env.COVERALLS_REPO_TOKEN) {
2020
req.repo_token = process.env.COVERALLS_REPO_TOKEN;

.travis/install.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
#!/bin/bash
22

3-
cd source
43
set -ev
4+
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
5+
cd ${SCRIPT_DIR}/../source
56

67
INSTALL_FILE="install_headless_with_trigger.sql"
78
if [[ ! -f "${INSTALL_FILE}" ]]; then
@@ -20,7 +21,7 @@ alter session set plsql_optimize_level=0;
2021
SQL
2122

2223
#Run this step only on second child job (12.1 - at it's fastest)
23-
if [[ "${TRAVIS_JOB_NUMBER}" =~ \.2$ ]]; then
24+
if [[ "${JOB_NUMBER}" =~ \.2$ ]]; then
2425

2526
#check code-style for errors
2627
time "$SQLCLI" $UT3_DEVELOP_SCHEMA/$UT3_DEVELOP_SCHEMA_PASSWORD@//$CONNECTION_STR @../development/utplsql_style_check.sql

.travis/install_sqlcl.sh

Lines changed: 0 additions & 20 deletions
This file was deleted.

.travis/install_utplsql_release.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/bin/bash
22

33
set -ev
4-
5-
cd $UTPLSQL_DIR/source
4+
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
5+
cd ${SCRIPT_DIR}/../${UTPLSQL_DIR}/source
66

77
"$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<SQL
88
set serveroutput on

.travis/push_docs_to_github_io.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ GITHUB_IO_BRANCH='main'
2020
# TRAVIS_* variables are set by travis directly and only need to be if testing externally
2121

2222
# We deploy only when building on develop branch or on TAG (release)
23-
if [ "$TRAVIS_PULL_REQUEST" == "false" ] && { [ "${CURRENT_BRANCH}" == "${LATEST_DOCS_BRANCH}" ] || [ -n "${TRAVIS_TAG}" ]; }; then
23+
if [ "${PULL_REQUEST_NAME}" == "false" ] && { [ "${CURRENT_BRANCH}" == "${LATEST_DOCS_BRANCH}" ] || [ -n "${TAG_NAME}" ]; }; then
2424

2525
# ENV Variable checks are to help with configuration troubleshooting, they silently exit with unique message.
2626
# Anyone one of them not set can be used to turn off this functionality.
@@ -47,7 +47,7 @@ if [ "$TRAVIS_PULL_REQUEST" == "false" ] && { [ "${CURRENT_BRANCH}" == "${LATEST
4747
cp -a ../../docs/. ./develop
4848

4949
# If a Tagged Build then copy to it's own directory as well and to the 'latest' release directory
50-
if [ -n "$TRAVIS_TAG" ]; then
50+
if [ -n "${TAG_NAME}" ]; then
5151
echo "Creating directory ./${UTPLSQL_VERSION}"
5252
mkdir -p ./${UTPLSQL_VERSION}
5353
rm -rf ./${UTPLSQL_VERSION}/**./* || exit 0
@@ -81,10 +81,10 @@ if [ "$TRAVIS_PULL_REQUEST" == "false" ] && { [ "${CURRENT_BRANCH}" == "${LATEST
8181
echo "" >>index.md
8282
fi
8383
#If build running on a TAG - it's a new release - need to add it to documentation
84-
if [ -n "${TRAVIS_TAG}" ]; then
85-
sed -i '7s@.*@'" - [Latest ${TRAVIS_TAG} documentation](latest/) - Created $now"'@' index.md
84+
if [ -n "${TAG_NAME}" ]; then
85+
sed -i '7s@.*@'" - [Latest ${TAG_NAME} documentation](latest/) - Created $now"'@' index.md
8686
#add entry to the top of version history (line end of file - ## Released Version Doc History
87-
sed -i '12i'" - [${TRAVIS_TAG} documentation](${UTPLSQL_VERSION}/) - Created $now" index.md
87+
sed -i '12i'" - [${TAG_NAME} documentation](${UTPLSQL_VERSION}/) - Created $now" index.md
8888
fi
8989
#replace 4th line in log
9090
sed -i '8s@.*@'" - [Latest development version](develop/) - Created $now"'@' index.md

.travis/push_release_version.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# We are updating version number only when:
44
# - not a pull request
55
# - branch name is = develop or branch name is like release/vX.X.X...
6-
if [ "${TRAVIS_REPO_SLUG}" = "${UTPLSQL_REPO}" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [[ "${CURRENT_BRANCH}" =~ ^(release/v[0-9]+\.[0-9]+\.[0-9]+.*|develop)$ ]]; then
6+
if [ "${REPO_SLUG}" = "${UTPLSQL_REPO}" ] && [ "${PULL_REQUEST_NAME}" == "false" ] && [[ "${CURRENT_BRANCH}" =~ ^(release/v[0-9]+\.[0-9]+\.[0-9]+.*|develop)$ ]]; then
77
echo Current branch is "${CURRENT_BRANCH}"
88
echo "Committing version & buildNo into branch (${CURRENT_BRANCH})"
99
git add sonar-project.properties
@@ -14,5 +14,5 @@ if [ "${TRAVIS_REPO_SLUG}" = "${UTPLSQL_REPO}" ] && [ "$TRAVIS_PULL_REQUEST" ==
1414
echo "Pushing to origin"
1515
git push --quiet origin HEAD:${CURRENT_BRANCH}
1616
else
17-
echo "Publishing of version skipped for branch ${CURRENT_BRANCH}, pull request ${TRAVIS_PULL_REQUEST}"
17+
echo "Publishing of version skipped for branch ${CURRENT_BRANCH}, pull request ${PULL_REQUEST_NAME}"
1818
fi

.travis/run_examples.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/bin/bash
22

3-
cd "$(dirname "$(readlink -f "$0")")"/../examples
4-
53
set -ev
4+
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
5+
cd ${SCRIPT_DIR}/../examples
66

77
"$SQLCLI" $UT3_DEVELOP_SCHEMA/$UT3_DEVELOP_SCHEMA_PASSWORD@//$CONNECTION_STR <<SQL
88

.travis/run_sonar_scanner.sh

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,28 @@ function add_sonar_property {
2121
}
2222

2323

24-
if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
25-
BRANCH=$TRAVIS_BRANCH;
24+
if [ "${PULL_REQUEST_NAME}" == "false" ]; then
25+
BRANCH=${BRANCH_NAME};
2626
PR_BRANCH=""
2727
echo "BRANCH=$BRANCH"
2828
else
29-
BRANCH=$TRAVIS_PULL_REQUEST_BRANCH
30-
PR_BRANCH=$TRAVIS_BRANCH
31-
echo "TRAVIS_BRANCH=$TRAVIS_BRANCH, PR=$TRAVIS_PULL_REQUEST, BRANCH=$BRANCH"
29+
BRANCH=${PULL_REQUEST_BRANCH}
30+
PR_BRANCH=${BRANCH_NAME}
31+
echo "TRAVIS_BRANCH=$TRAVIS_BRANCH, PR=${PULL_REQUEST_NAME}, BRANCH=$BRANCH"
3232

3333
fi
3434

3535

3636
#Are we running on utPLSQL repo and not an external PR?
3737
echo "Check if we running from develop or on branch"
38-
if [ "${TRAVIS_REPO_SLUG}" = "${UTPLSQL_REPO}" ] && [[ ! "${BRANCH}" =~ ^(release/v[0-9]+\.[0-9]+\.[0-9]+.*|"${MAIN_DEV_BRANCH}")$ ]]; then
38+
if [ "${REPO_SLUG}" = "${UTPLSQL_REPO}" ] && [[ ! "${BRANCH}" =~ ^(release/v[0-9]+\.[0-9]+\.[0-9]+.*|"${MAIN_DEV_BRANCH}")$ ]]; then
3939

4040
echo "" >> sonar-project.properties
41-
if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
41+
if [ "${PULL_REQUEST_NAME}" == "false" ]; then
4242
echo "Updating sonar properties to include branch ${BRANCH}"
4343
add_sonar_property "${BRANCH_SONAR_PROPERTY}" "${BRANCH}"
4444
add_sonar_property "${BRANCH_SONAR_TARGET_PROPERTY}" "${MAIN_DEV_BRANCH}"
45-
elif [ "${TRAVIS_PULL_REQUEST_SLUG}" = "${TRAVIS_REPO_SLUG}" ]; then
45+
elif [ "${PR_SLUG}" = "${REPO_SLUG}" ]; then
4646
echo "Updating sonar properties to include pull request ${BRANCH}"
4747
add_sonar_property "${PR_SONAR_TOKEN_PROPERTY}" "${GITHUB_TRAVISCI_TOKEN}"
4848
add_sonar_property "${PR_SONAR_BRANCH_PROPERTY}" "${BRANCH}"

.travis/start_db.sh

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ else
1010
mkdir -p $HOME/.docker && cp $CACHE_DIR/.docker/config.json $HOME/.docker/
1111
fi
1212

13-
df -h
1413
time docker pull $DOCKHER_HUB_REPO:$ORACLE_VERSION
15-
df -h
16-
docker run -d --name $ORACLE_VERSION $DOCKER_OPTIONS -p 1521:1521 $DOCKHER_HUB_REPO:$ORACLE_VERSION
14+
docker run -d --name $ORACLE_VERSION --mount type=bind,source=${BUILD_DIR},target=${DOCKER_VOLUME} $DOCKER_OPTIONS $DOCKER_ENV -p 1521:1521 $DOCKHER_HUB_REPO:$ORACLE_VERSION
1715
time docker logs -f $ORACLE_VERSION | grep -m 1 "DATABASE IS READY TO USE!" --line-buffered
18-
df -h

0 commit comments

Comments
 (0)