sudo: required language: python os: linux jdk: openjdk10 addons: sonarcloud: organization: utplsql token: ${SONAR_TOKEN} services: - docker env: global: - UT3_DEVELOP_SCHEMA=UT3_DEVELOP - UT3_DEVELOP_SCHEMA_PASSWORD=ut3 - UT3_RELEASE_VERSION_SCHEMA=UT3 - UT3_RELEASE_VERSION_SCHEMA_PASSWORD=ut3 - UT3_USER="UT3\$USER#" - UT3_USER_PASSWORD=ut3 - UT3_TESTER=UT3_TESTER - UT3_TESTER_PASSWORD=ut3 - UT3_TESTER_HELPER=UT3_TESTER_HELPER - UT3_TESTER_HELPER_PASSWORD=ut3 - UT3_TABLESPACE=users - BUILD_DIR=${TRAVIS_BUILD_DIR} - JOB_ID=${TRAVIS_JOB_ID} - JOB_NUMBER=${TRAVIS_JOB_NUMBER} - PULL_REQUEST_NAME=${TRAVIS_PULL_REQUEST} - PULL_REQUEST_BRANCH=${TRAVIS_PULL_REQUEST_BRANCH} - TAG_NAME=${TRAVIS_TAG} - REPO_SLUG=${TRAVIS_REPO_SLUG} - PR_SLUG=${TRAVIS_PULL_REQUEST_SLUG} - BRANCH_NAME=${TRAVIS_BRANCH} # Environment for building a release - CURRENT_BRANCH=${TRAVIS_BRANCH} - UTPLSQL_REPO="utPLSQL/utPLSQL" - UTPLSQL_BUILD_NO="${TRAVIS_BUILD_NUMBER:-0}" - UTPLSQL_VERSION=$(. .travis/get_project_version.sh) - UTPLSQL_BUILD_VERSION=$(. .travis/get_project_build_version.sh) - UTPLSQL_SOURCES_DIR='source' - UTPLSQL_BUILD_USER_NAME="Travis CI" - CACHE_DIR=$HOME/.cache # Database Env - SQLCLI="${BUILD_DIR}/sqlcl/bin/sql" - OJDBC_HOME="${BUILD_DIR}/ojdbc" - ORACLE_PWD="oracle" - DOCKHER_HUB_REPO="utplsqlv3/oracledb" - DOCKER_VOLUME="/home/oracle/host" - 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" #utPLSQL released version directory - UTPLSQL_DIR="utPLSQL_latest_release" - SELFTESTING_BRANCH=${TRAVIS_BRANCH} - UTPLSQL_CLI_VERSION="3.1.8" # Maven - MAVEN_HOME=/usr/local/maven - MAVEN_CFG=$HOME/.m2 jobs: - ORACLE_VERSION="11g-r2-xe" CONNECTION_STR='127.0.0.1:1521/XE' DOCKER_VOLUME="/mnt/host" DOCKER_OPTIONS='--shm-size=1g' # - 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" - ORACLE_VERSION="12c-r1-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB' - ORACLE_VERSION="12c-r2-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB' - ORACLE_VERSION="18-slim" CONNECTION_STR='127.0.0.1:1521/XEPDB1' DOCKHER_HUB_REPO="gvenzl/oracle-xe" DOCKER_OPTIONS='-e ORACLE_PASSWORD=oracle' - ORACLE_VERSION="18c-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB' - ORACLE_VERSION="19c-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB' - ORACLE_VERSION="21-full" CONNECTION_STR='127.0.0.1:1521/XEPDB1' DOCKHER_HUB_REPO="gvenzl/oracle-xe" DOCKER_OPTIONS='-e ORACLE_PASSWORD=oracle' cache: pip: true directories: - $CACHE_DIR - /home/travis/.sonar/cache - node_modules - $MAVEN_CFG before_install: #cache to be used between stages. Based on https://github.com/travis-ci/docs-travis-ci-com/issues/1329 #delete all files in cache that are older than 5 days - mkdir -p $CACHE_DIR/stages_cache; find $CACHE_DIR/stages_cache/ -mtime +5 -exec rm {} \; #The update_project_version.sh is done before deployment to validate that the change of project files does not break installation - bash .travis/update_project_version.sh #Allow for sonar to blame issues - git fetch --unshallow # download latest utPLSQL release - git clone --depth=1 --branch=${SELFTESTING_BRANCH:-main} 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 install: - unzip utPLSQL-cli.zip && chmod -R u+x utPLSQL-cli # - curl -Lk -o sqlcl-latest.zip https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip # - unzip -q sqlcl-latest.zip -d $HOME - mkdir -p ${OJDBC_HOME} #get JDBC driver and orai18n - curl -Lk -o ${OJDBC_HOME}/ojdbc8.jar https://download.oracle.com/otn-pub/otn_software/jdbc/213/ojdbc8.jar - curl -Lk -o ${OJDBC_HOME}/orai18n.jar https://download.oracle.com/otn-pub/otn_software/jdbc/213/orai18n.jar # Chmod is needed to allow for write access within from docker container volume - chmod -R go+w ./{source,test,examples,${UTPLSQL_DIR}/source} - if [[ ! $TRAVIS_TAG ]]; then bash .travis/start_db.sh; fi - if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/install.sh; fi - if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/install_utplsql_release.sh; fi before_script: - if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/run_examples.sh; fi - if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/test/install_tests.sh; fi script: - if [[ ! $TRAVIS_TAG ]]; then bash test/run_tests.sh; fi - if [[ ! $TRAVIS_TAG ]]; then bash .travis/validate_report_files.sh; fi - 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 - if [[ ! $TRAVIS_TAG ]]; then bash .travis/coveralls_uploader.sh; fi notifications: slack: rooms: - secure: "nemt9n2y5sVCAKqa/s7JDQ8AcM59Xu/XbH/RkMOXvPgc+KtR8lBtVD1LkvJ5BaQhqgjuDT7DNt/uisQJ7k6a2OsrVFbnkypZ1hCvntOBpJyoSpD/YL1X8a9GbGojuJcph0BX76KN21LaOVdyOfY0TSlw53XiYWS8iL5HtjpWCbIwHL1SJ8JT8mhdT4hDoUWZjcZ4s4bLH6BQm4un/bMQOmB4sDoCeg4CllJwxgkswVF7OHpOFjgPetvUp7ps8b/Rj8en6zCj9drb0SVbXFgumo2Wd1bC3HHZB8MAZU0kuEV5VgUdum6EelUL5yfB72hssNQA0+CaT3HjBFkTlqWYJmjC4/xyGN3sseiW82T9FDY0g0GAGayNRW+QSiTQ1hbJEcAnNe0GrBUdRsgXdI6COd76YP5VxzRSF6H7niLfgCZdKbIivKUd1o+wBhuyJmqCFIkRWmT38tMGJqJAzbY1jq5gQXbb6E7gt+KdTjlSjcnJYf7XI7zqm+BRr+fbA0ixfXHvfqOBgZN6g08y9nPlDnIjtSF2NSdrj2zqYQAtKuWSOD1bnTyfDJyrtK7OLffZcMYD5Bcss4c8op8tP7MGTjt1S046SJocboh6H4c/nTokpoMRsWs6MKRdebl8C2RObGf5FebSOJg+oh2ZYS5Z/G9GshiY2BD/81+Hc4Miacc=" on_success: change on_failure: always jobs: include: - stage: deploy env: ORACLE_VERSION="none" before_install: skip install: - pip install mkdocs before_script: skip script: - bash .travis/update_project_version.sh - git config --global user.email "builds@travis-ci.com" - git config --global user.name "${UTPLSQL_BUILD_USER_NAME}" - git remote rm origin - git remote add origin https://${github_api_token}@github.com/${UTPLSQL_REPO} - if [[ ! $TRAVIS_TAG ]]; then bash .travis/push_release_version.sh; fi - bash .travis/push_docs_to_github_io.sh - bash .travis/build_docs.sh - if [[ ($TRAVIS_BRANCH == develop) && ($TRAVIS_PULL_REQUEST == false) ]]; then bash .travis/trigger_travis.sh $TRAVIS_ACCESS_TOKEN; fi before_deploy: - bash .travis/build_release_archive.sh deploy: provider: releases api_key: $github_api_token file: - utPLSQL.zip - utPLSQL.tar.gz - utPLSQL.zip.md5 - utPLSQL.tar.gz.md5 skip_cleanup: true on: repo: ${UTPLSQL_REPO} tags: true