diff --git a/.travis.yml b/.travis.yml index 115c1c8dd..b373c4f4e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ addons: chrome: stable language: node_js node_js: - - '10' + - "12.14.0" cache: directories: @@ -59,6 +59,10 @@ jobs: before_script: ./scripts/ci/utils/artifact-from-s3.sh -a "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" -o "./dist/app" script: SUITE="--suite viewer,infoDrawer,extensions" npm run e2e:docker + - stage: Trigger DW + if: (branch = master OR branch = development OR (tag =~ .*beta.*)) AND type = push + script: ./scripts/trigger-travis.sh --pro --branch $TRAVIS_BRANCH Alfresco digital-workspace $TRAVIS_ACCESS_TOKEN + after_failure: - alfrescoContainerId=$(docker ps -a | grep 'alfresco-content-repository-community' | awk '{print $1}') - docker logs $alfrescoContainerId > alfresco.log diff --git a/scripts/trigger-travis.sh b/scripts/trigger-travis.sh new file mode 100755 index 000000000..90bf6d6ec --- /dev/null +++ b/scripts/trigger-travis.sh @@ -0,0 +1,70 @@ +#!/bin/sh -f + +# Trigger a new Travis-CI job. + +# Usage: +# trigger-travis.sh [--pro] [--branch BRANCH] GITHUBID GITHUBPROJECT TRAVIS_ACCESS_TOKEN [MESSAGE] +# For example: +# trigger-travis.sh typetools checker-framework `cat ~/private/.travis-access-token` "Trigger for testing" + + +if [ "$#" -lt 3 ] || [ "$#" -ge 7 ]; then + echo "Wrong number of arguments $# to trigger-travis.sh; run like:" + echo " trigger-travis.sh [--pro] [--branch BRANCH] GITHUBID GITHUBPROJECT TRAVIS_ACCESS_TOKEN [MESSAGE]" >&2 + exit 1 +fi + +if [ "$1" = "--pro" ] ; then + TRAVIS_URL=travis-ci.com + shift +else + TRAVIS_URL=travis-ci.org +fi + +if [ "$1" = "--branch" ] ; then + shift + BRANCH="$1" + shift +else + BRANCH=master +fi + +USER=$1 +REPO=$2 +TOKEN=$3 +if [ $# -eq 4 ] ; then + MESSAGE=",\"message\": \"$4\"" +elif [ -n "$TRAVIS_REPO_SLUG" ] ; then + MESSAGE=",\"message\": \"Triggered by upstream build of $TRAVIS_REPO_SLUG commit "`git log --oneline -n 1 HEAD`"\"" +else + MESSAGE="" +fi +## For debugging: +# echo "USER=$USER" +# echo "REPO=$REPO" +# echo "TOKEN=$TOKEN" +# echo "MESSAGE=$MESSAGE" + +body="{ +\"request\": { + \"branch\":\"$BRANCH\" + $MESSAGE +}}" + +# "%2F" creates a literal "/" in the URL, that is not interpreted as a +# segment or directory separator. +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${REPO}/requests \ + | tee /tmp/travis-request-output.$$.txt + +if grep -q '"@type": "error"' /tmp/travis-request-output.$$.txt; then + exit 1 +fi +if grep -q 'access denied' /tmp/travis-request-output.$$.txt; then + exit 1 +fi