You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.7 KiB
95 lines
2.7 KiB
#!/bin/bash |
|
|
|
# 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. |
|
|
|
set -e |
|
|
|
GIT_CLONE_ARGS=("$@") |
|
[ -z "$defbranch" ] && defbranch="develop" |
|
|
|
# clone a specific branch of a github repo |
|
function clone() { |
|
org=$1 |
|
repo=$2 |
|
branch=$3 |
|
|
|
# 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[@]}" |
|
fi |
|
} |
|
|
|
function dodep() { |
|
org=$1 |
|
repo=$2 |
|
rm -rf $repo |
|
|
|
# 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. |
|
if [[ "$TRAVIS" == true ]]; then |
|
clone $org $repo $TRAVIS_PULL_REQUEST_BRANCH || |
|
clone $org $repo $TRAVIS_BRANCH || |
|
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 |
|
|
|
echo "$repo set to branch "`git -C "$repo" rev-parse --abbrev-ref HEAD` |
|
|
|
mkdir -p node_modules |
|
npm link "./$repo" # This does an npm install for us |
|
} |
|
|
|
############################## |
|
|
|
echo -en 'travis_fold:start:matrix-js-sdk\r' |
|
echo 'Setting up matrix-js-sdk' |
|
|
|
dodep matrix-org matrix-js-sdk |
|
|
|
echo -en 'travis_fold:end:matrix-js-sdk\r' |
|
|
|
############################## |
|
|
|
echo -en 'travis_fold:start:matrix-react-sdk\r' |
|
echo 'Setting up matrix-react-sdk' |
|
|
|
dodep matrix-org matrix-react-sdk |
|
|
|
# replace the version of js-sdk that got pulled into react-sdk with a link |
|
# to our version. Make sure to do this *after* doing 'npm i' in react-sdk, |
|
# otherwise npm helpfully moves another-json from matrix-js-sdk/node_modules |
|
# into matrix-react-sdk/node_modules. |
|
# |
|
# (note this matches the instructions in the README.) |
|
cd matrix-react-sdk |
|
npm link ../matrix-js-sdk |
|
cd ../ |
|
|
|
echo -en 'travis_fold:end:matrix-react-sdk\r' |
|
|
|
############################## |
|
|
|
# Link the reskindex binary in place: if we used npm link, |
|
# npm would do this for us, but we don't because we'd have |
|
# to define the npm prefix somewhere so it could put the |
|
# intermediate symlinks there. Instead, we do it ourselves. |
|
mkdir -p node_modules/.bin |
|
ln -sfv ../matrix-react-sdk/scripts/reskindex.js node_modules/.bin/reskindex
|
|
|