2017-05-17 19:21:58 +02:00
|
|
|
#!/bin/bash
|
2017-05-17 17:11:34 +02:00
|
|
|
|
|
|
|
# Fetches the js-sdk and matrix-react-sdk dependencies for development
|
|
|
|
# or testing purposes
|
|
|
|
# If there exists a branch of that dependency with the same name as
|
|
|
|
# the branch the current checkout is on, use that branch. Otherwise,
|
|
|
|
# use develop.
|
|
|
|
|
2017-05-31 16:37:30 +02:00
|
|
|
set -e
|
|
|
|
|
2017-06-01 19:02:51 +02:00
|
|
|
GIT_CLONE_ARGS=("$@")
|
2019-01-23 04:28:09 +01:00
|
|
|
[ -z "$defbranch" ] && defbranch="develop"
|
2017-05-17 17:11:34 +02:00
|
|
|
|
2017-06-01 19:02:51 +02:00
|
|
|
# clone a specific branch of a github repo
|
|
|
|
function clone() {
|
|
|
|
org=$1
|
|
|
|
repo=$2
|
|
|
|
branch=$3
|
2019-01-23 04:28:09 +01:00
|
|
|
|
|
|
|
# Chop 'origin' off the start as jenkins ends up using
|
|
|
|
# branches on the origin, but this doesn't work if we
|
|
|
|
# specify the branch when cloning.
|
|
|
|
branch=${branch#origin/}
|
|
|
|
|
|
|
|
if [ -n "$branch" ]
|
|
|
|
then
|
|
|
|
echo "Trying to use $org/$repo#$branch"
|
|
|
|
git clone https://github.com/$org/$repo.git $repo --branch $branch \
|
|
|
|
"${GIT_CLONE_ARGS[@]}"
|
2019-01-23 12:40:21 +01:00
|
|
|
return $?
|
2019-01-23 04:28:09 +01:00
|
|
|
fi
|
2019-01-23 12:40:21 +01:00
|
|
|
return 1
|
2017-06-01 19:02:51 +02:00
|
|
|
}
|
|
|
|
|
2017-05-17 17:11:34 +02:00
|
|
|
function dodep() {
|
|
|
|
org=$1
|
|
|
|
repo=$2
|
2017-06-01 19:02:51 +02:00
|
|
|
rm -rf $repo
|
2019-01-23 04:28:09 +01:00
|
|
|
|
|
|
|
# Try the PR author's branch in case it exists on the deps as well.
|
|
|
|
# Try the target branch of the push or PR.
|
|
|
|
# Use the default branch as the last resort.
|
2019-03-14 05:23:28 +01:00
|
|
|
if [[ "$BUILDKITE" == true ]]; then
|
|
|
|
clone $org $repo $BUILDKITE_BRANCH ||
|
2019-01-23 04:28:09 +01:00
|
|
|
clone $org $repo $defbranch ||
|
|
|
|
return $?
|
|
|
|
else
|
|
|
|
clone $org $repo $ghprbSourceBranch ||
|
|
|
|
clone $org $repo $GIT_BRANCH ||
|
|
|
|
clone $org $repo `git rev-parse --abbrev-ref HEAD` ||
|
|
|
|
clone $org $repo $defbranch ||
|
|
|
|
return $?
|
|
|
|
fi
|
2017-06-01 19:02:51 +02:00
|
|
|
|
2017-08-08 10:43:40 +02:00
|
|
|
echo "$repo set to branch "`git -C "$repo" rev-parse --abbrev-ref HEAD`
|
2017-05-17 17:11:34 +02:00
|
|
|
}
|
|
|
|
|
2017-08-08 10:43:40 +02:00
|
|
|
##############################
|
|
|
|
|
2017-06-01 19:02:51 +02:00
|
|
|
echo -en 'travis_fold:start:matrix-js-sdk\r'
|
|
|
|
echo 'Setting up matrix-js-sdk'
|
|
|
|
|
2017-05-17 17:11:34 +02:00
|
|
|
dodep matrix-org matrix-js-sdk
|
2017-06-01 19:02:51 +02:00
|
|
|
|
2019-03-12 12:06:57 +01:00
|
|
|
pushd matrix-js-sdk
|
|
|
|
yarn link
|
|
|
|
yarn install
|
|
|
|
popd
|
|
|
|
|
|
|
|
yarn link matrix-js-sdk
|
|
|
|
|
2017-06-01 19:02:51 +02:00
|
|
|
echo -en 'travis_fold:end:matrix-js-sdk\r'
|
|
|
|
|
2017-08-08 10:43:40 +02:00
|
|
|
##############################
|
|
|
|
|
2017-06-01 19:02:51 +02:00
|
|
|
echo -en 'travis_fold:start:matrix-react-sdk\r'
|
|
|
|
echo 'Setting up matrix-react-sdk'
|
|
|
|
|
2017-05-17 17:11:34 +02:00
|
|
|
dodep matrix-org matrix-react-sdk
|
2017-05-17 19:14:28 +02:00
|
|
|
|
2019-03-12 12:06:57 +01:00
|
|
|
pushd matrix-react-sdk
|
|
|
|
yarn link
|
|
|
|
yarn link matrix-js-sdk
|
|
|
|
yarn install
|
|
|
|
popd
|
|
|
|
|
|
|
|
yarn link matrix-react-sdk
|
2017-06-01 19:02:51 +02:00
|
|
|
|
|
|
|
echo -en 'travis_fold:end:matrix-react-sdk\r'
|
|
|
|
|
2017-08-08 10:43:40 +02:00
|
|
|
##############################
|
|
|
|
|
2019-03-12 12:06:57 +01:00
|
|
|
# Link the reskindex binary in place: if we used `yarn link`,
|
|
|
|
# Yarn would do this for us, but we don't because we'd have
|
|
|
|
# to define the Yarn binary prefix somewhere so it could put the
|
2017-05-17 19:14:28 +02:00
|
|
|
# intermediate symlinks there. Instead, we do it ourselves.
|
2017-06-01 19:02:51 +02:00
|
|
|
mkdir -p node_modules/.bin
|
|
|
|
ln -sfv ../matrix-react-sdk/scripts/reskindex.js node_modules/.bin/reskindex
|