From a183ed8884e24568e2b2d621c5f264b2460f07fc Mon Sep 17 00:00:00 2001 From: Eugenio Romano Date: Thu, 30 Jan 2020 11:58:23 +0000 Subject: [PATCH] trigger child build after merge like JS-API (#5427) --- .travis.yml | 8 +- .../travis/update/trigger-travis-children.sh | 75 +++++++++++++++++++ 2 files changed, 82 insertions(+), 1 deletion(-) create mode 100755 scripts/travis/update/trigger-travis-children.sh diff --git a/.travis.yml b/.travis.yml index cfe9f8ca5e..adfa277465 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,6 +37,8 @@ stages: if: branch = master AND type = push OR (tag =~ .*beta.*) - name: Release beta tag if: type = cron OR branch = master + - name: Trigger ADF child build + if: (branch = development AND type = push) OR type = api addons: chrome: stable @@ -113,7 +115,11 @@ jobs: script: - ADF_VERSION=$(npm view @alfresco/adf-core@${TAG_NPM} version) - ./scripts/npm-check-bundles.sh -v ${ADF_VERSION} - + + - stage: Trigger ADF child build + name: Trigger ADF child build + script: ./scripts/travis/update/trigger-travis-children-build.sh --branch $TRAVIS_BRANCH Alfresco $TRAVIS_ACCESS_TOKEN + notifications: slack: on_pull_requests: false diff --git a/scripts/travis/update/trigger-travis-children.sh b/scripts/travis/update/trigger-travis-children.sh new file mode 100755 index 0000000000..316b023718 --- /dev/null +++ b/scripts/travis/update/trigger-travis-children.sh @@ -0,0 +1,75 @@ +#!/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" + +# For full documentation, see +# https://github.com/plume-lib/trigger-travis/ + + +eval repos=( "alfresco-modeler-app" + "alfresco-process-workspace-app" + "alfresco-admin-app") + +if [ "$#" -lt 3 ] || [ "$#" -ge 7 ]; then + echo "Wrong number of arguments $# to trigger-travis.sh; run like:" + echo " trigger-travis.sh [--branch BRANCH] GITHUBPROJECT TRAVIS_ACCESS_TOKEN [MESSAGE]" >&2 + exit 1 +fi + +if [ "$1" = "--branch" ] ; then + shift + BRANCH="$1" + shift +else + BRANCH=master +fi + +USER=$1 +TOKEN=$2 +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 +}}" + + +for REPO in ${repos[@]} +do + + # "%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-ci.com/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 + +fi