From c54c14b03bf4b463f50c8005aacb547e3bdec370 Mon Sep 17 00:00:00 2001 From: lwasylow Date: Sun, 8 Jul 2018 09:32:27 +0100 Subject: [PATCH 1/6] Trigger subbuild on develop --- .travis.yml | 3 ++ .travis/trigger_travis.sh | 71 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 .travis/trigger_travis.sh diff --git a/.travis.yml b/.travis.yml index cf4abb857..3eb275811 100644 --- a/.travis.yml +++ b/.travis.yml @@ -104,6 +104,9 @@ script: - if [[ ! $TRAVIS_TAG ]]; then bash .travis/push_release_version.sh; fi - bash .travis/push_docs_to_gh_pages.sh +after_success: + - if [[ ($TRAVIS_BRANCH == develop) && ($TRAVIS_PULL_REQUEST == false) ]]; then bash trigger-travis.sh $TRAVIS_ACCESS_TOKEN fi + before_deploy: - bash .travis/build_release_archive.sh diff --git a/.travis/trigger_travis.sh b/.travis/trigger_travis.sh new file mode 100644 index 000000000..ccf90c397 --- /dev/null +++ b/.travis/trigger_travis.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +# Trigger a new Travis-CI job. +# Ordinarily, a new Travis job is triggered when a commit is pushed to a +# GitHub repository. The trigger-travis.sh script provides a programmatic +# way to trigger a new Travis job. + +# To use this script to trigger a dependent build in Travis, do two things: +# +# 1. Set an environment variable TRAVIS_ACCESS_TOKEN by navigating to +# https://travis-ci.org/MYGITHUBID/MYGITHUBPROJECT/settings +# The TRAVIS_ACCESS_TOKEN environment variable will be set when Travis runs +# the job, but won't be visible to anyone browsing https://travis-ci.org/. +# + + +TRAVIS_URL=travis-ci.org +BRANCH=develop +USER="utPLSQL" +RESULT=1 +declare -a REPO_MATRIX=("utPLSQL-java-api" "utPLSQL-v2-v3-migration" "utPLSQL-cli") + +TOKEN=$1 + +if [ -n "$TRAVIS_REPO_SLUG" ] ; then + MESSAGE=",\"message\": \"Triggered by upstream build of $TRAVIS_REPO_SLUG commit "`git rev-parse --short HEAD`"\"" +else + MESSAGE=",\"message\": \"Triggered manually from shell\"" +fi + +## For debugging: +# echo "TOKEN=$TOKEN" +# echo "MESSAGE=$MESSAGE" + +body="{ +\"request\": { + \"branch\":\"$BRANCH\" + $MESSAGE +}}" + +for DOWNSTREAM_BUILD in "${REPO_MATRIX[@]}"; do + + curl -s -X POST \ + -H "Content-Type: application/json" \ + -H "Accept: application/json" \ + -H "Travis-API-Version: 3" \ + -H "Authorization: token ${TOKEN}" \ + -d "$body" \ + https://api.${TRAVIS_URL}/repo/${USER}%2F${DOWNSTREAM_BUILD}/requests \ + | tee ${DOWNSTREAM_BUILD}-output.txt + + if grep -q '"@type": "error"' ${DOWNSTREAM_BUILD}-output.txt; then + #exit 1 + RESULT=0 + echo "" + echo "Failed to start ${DOWNSTREAM_BUILD}" + echo "" + fi + if grep -q 'access denied' ${DOWNSTREAM_BUILD}-output.txt; then + #exit 1 + RESULT=0 + echo "" + echo "Failed to start ${DOWNSTREAM_BUILD}" + echo "" + fi + +done + +if [[ RESULT -eq 0 ]]; then + exit 1 +fi From 77299541f2fb37d360918162abd3d6a102466e4f Mon Sep 17 00:00:00 2001 From: lwasylow Date: Sun, 8 Jul 2018 09:34:04 +0100 Subject: [PATCH 2/6] update --- .travis/trigger_travis.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis/trigger_travis.sh b/.travis/trigger_travis.sh index ccf90c397..8844ffd05 100644 --- a/.travis/trigger_travis.sh +++ b/.travis/trigger_travis.sh @@ -50,14 +50,12 @@ for DOWNSTREAM_BUILD in "${REPO_MATRIX[@]}"; do | tee ${DOWNSTREAM_BUILD}-output.txt if grep -q '"@type": "error"' ${DOWNSTREAM_BUILD}-output.txt; then - #exit 1 RESULT=0 echo "" echo "Failed to start ${DOWNSTREAM_BUILD}" echo "" fi if grep -q 'access denied' ${DOWNSTREAM_BUILD}-output.txt; then - #exit 1 RESULT=0 echo "" echo "Failed to start ${DOWNSTREAM_BUILD}" From 27a361c4db2fef154bda96e8e7d26c874dda96f6 Mon Sep 17 00:00:00 2001 From: lwasylow Date: Sun, 8 Jul 2018 09:58:52 +0100 Subject: [PATCH 3/6] Update if --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3eb275811..266edd96d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -105,7 +105,7 @@ script: - bash .travis/push_docs_to_gh_pages.sh after_success: - - if [[ ($TRAVIS_BRANCH == develop) && ($TRAVIS_PULL_REQUEST == false) ]]; then bash trigger-travis.sh $TRAVIS_ACCESS_TOKEN fi + - if [[ ($TRAVIS_BRANCH == develop) && ($TRAVIS_PULL_REQUEST == false) ]]; then bash trigger-travis.sh $TRAVIS_ACCESS_TOKEN; fi before_deploy: - bash .travis/build_release_archive.sh From 4c6476b9593902b2a7720232893853afdbb140b6 Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Sun, 8 Jul 2018 15:24:05 +0100 Subject: [PATCH 4/6] Changed printing of messages to be directed to STDERR rather than STDOUT when errors encountered while triggering child builds. --- .travis/trigger_travis.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.travis/trigger_travis.sh b/.travis/trigger_travis.sh index 8844ffd05..c7b9a7071 100644 --- a/.travis/trigger_travis.sh +++ b/.travis/trigger_travis.sh @@ -13,6 +13,7 @@ # the job, but won't be visible to anyone browsing https://travis-ci.org/. # +echoerr() { echo "$@" 1>&2; } TRAVIS_URL=travis-ci.org BRANCH=develop @@ -51,15 +52,15 @@ for DOWNSTREAM_BUILD in "${REPO_MATRIX[@]}"; do if grep -q '"@type": "error"' ${DOWNSTREAM_BUILD}-output.txt; then RESULT=0 - echo "" - echo "Failed to start ${DOWNSTREAM_BUILD}" - echo "" + echoerr "" + echoerr "Failed to start ${DOWNSTREAM_BUILD}" + echoerr "" fi if grep -q 'access denied' ${DOWNSTREAM_BUILD}-output.txt; then RESULT=0 - echo "" - echo "Failed to start ${DOWNSTREAM_BUILD}" - echo "" + echoerr "" + echoerr "Failed to start ${DOWNSTREAM_BUILD}" + echoerr "" fi done From e4823b096095f892bbb7c5b7fbd0cc01278c087d Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Sun, 8 Jul 2018 15:49:30 +0100 Subject: [PATCH 5/6] Testing deploy stages --- .travis.yml | 57 +++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/.travis.yml b/.travis.yml index 266edd96d..4adf04428 100644 --- a/.travis.yml +++ b/.travis.yml @@ -52,8 +52,8 @@ env: - MAVEN_HOME=/usr/local/maven - MAVEN_CFG=$HOME/.m2 matrix: - - ORACLE_VERSION="${DOCKER_TAG_11G:-11g-r2-xe}" CONNECTION_STR='127.0.0.1:1521/XE' DOCKER_OPTIONS='--shm-size=1g' - - ORACLE_VERSION="${DOCKER_TAG_12C:-12c-r1-se2}" CONNECTION_STR='127.0.0.1:1521/ORCLPDB1' DOCKER_OPTIONS="-v /dev/pdbs:/opt/oracle/oradata/pdbs" + - ORACLE_VERSION="${DOCKER_TAG_11G:-11g-r2-xe}" CONNECTION_STR='127.0.0.1:1521/XE' DOCKER_OPTIONS='--shm-size=1g' + - ORACLE_VERSION="${DOCKER_TAG_12C:-12c-r1-se2}" CONNECTION_STR='127.0.0.1:1521/ORCLPDB1' DOCKER_OPTIONS="-v /dev/pdbs:/opt/oracle/oradata/pdbs" - ORACLE_VERSION="${DOCKER_TAG_12C2:-12c-r2-se2}" CONNECTION_STR='127.0.0.1:1521/ORCLPDB1' DOCKER_OPTIONS="-v /dev/pdbs:/opt/oracle/oradata/pdbs" cache: @@ -100,30 +100,6 @@ script: - if [[ ! $TRAVIS_TAG ]]; then bash .travis/validate_report_files.sh; fi - if [[ ! $TRAVIS_TAG ]] && [ "${TRAVIS_REPO_SLUG}" = "${UTPLSQL_REPO}" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then sonar-scanner; fi - if [[ ! $TRAVIS_TAG ]]; then bash .travis/coveralls_uploader.sh; fi - - bash .travis/build_docs.sh - - if [[ ! $TRAVIS_TAG ]]; then bash .travis/push_release_version.sh; fi - - bash .travis/push_docs_to_gh_pages.sh - -after_success: - - if [[ ($TRAVIS_BRANCH == develop) && ($TRAVIS_PULL_REQUEST == false) ]]; then bash 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 - # when building from a release tag, use only first job "#xxx.1" to publish artifacts - condition: "${TRAVIS_JOB_NUMBER} =~ \\.1$" notifications: slack: @@ -131,3 +107,32 @@ notifications: - 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: CONNECTION_STR='127.0.0.1:1521/XE' + before_install: skip + install: skip + before_script: skip + script: + - if [[ ($TRAVIS_BRANCH == develop) && ($TRAVIS_PULL_REQUEST == false) ]]; then bash trigger-travis.sh $TRAVIS_ACCESS_TOKEN; fi + - if [[ ! $TRAVIS_TAG ]]; then bash .travis/push_release_version.sh; fi + - bash .travis/build_docs.sh + - bash .travis/push_docs_to_gh_pages.sh + 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 + # when building from a release tag, use only first job "#xxx.1" to publish artifacts + condition: "${TRAVIS_JOB_NUMBER} =~ \\.1$" From 4b2062d561e1500a8b1aca8c2895b88da6184b15 Mon Sep 17 00:00:00 2001 From: Jacek Gebal Date: Sun, 8 Jul 2018 16:15:49 +0100 Subject: [PATCH 6/6] Moved mkdocs to `deploy` stage. --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4adf04428..4a6e03fa8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -81,7 +81,6 @@ install: - unzip utPLSQL-cli.zip && chmod -R u+x utPLSQL-cli # Get ojdbc via maven - bash .travis/maven_cfg.sh - - pip install mkdocs - bash .travis/install_sqlcl.sh - sudo mkdir -p /dev/pdbs - sudo chmod -R 777 /dev/pdbs @@ -111,9 +110,10 @@ notifications: jobs: include: - stage: deploy - env: CONNECTION_STR='127.0.0.1:1521/XE' + env: ORACLE_VERSION="none" before_install: skip - install: skip + install: + - pip install mkdocs before_script: skip script: - if [[ ($TRAVIS_BRANCH == develop) && ($TRAVIS_PULL_REQUEST == false) ]]; then bash trigger-travis.sh $TRAVIS_ACCESS_TOKEN; fi