2022-11-09 22:58:06 +08:00
|
|
|
#!/usr/bin/env bash
|
2017-05-17 23:11:34 +08:00
|
|
|
|
2024-10-15 21:57:26 +08:00
|
|
|
# Fetches the js-sdk dependency for development or testing purposes
|
2017-05-17 23:11:34 +08:00
|
|
|
# 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.
|
|
|
|
|
2022-10-12 23:15:51 +08:00
|
|
|
set -x
|
2017-05-31 22:37:30 +08:00
|
|
|
|
2017-06-02 01:02:51 +08:00
|
|
|
GIT_CLONE_ARGS=("$@")
|
2019-01-23 11:28:09 +08:00
|
|
|
[ -z "$defbranch" ] && defbranch="develop"
|
2017-05-17 23:11:34 +08:00
|
|
|
|
2017-06-02 01:02:51 +08:00
|
|
|
# clone a specific branch of a github repo
|
|
|
|
function clone() {
|
|
|
|
org=$1
|
|
|
|
repo=$2
|
|
|
|
branch=$3
|
2019-01-23 11:28:09 +08: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"
|
2022-01-11 20:48:49 +08:00
|
|
|
# Disable auth prompts: https://serverfault.com/a/665959
|
|
|
|
GIT_TERMINAL_PROMPT=0 git clone https://github.com/$org/$repo.git $repo --branch $branch \
|
2019-01-23 11:28:09 +08:00
|
|
|
"${GIT_CLONE_ARGS[@]}"
|
2019-01-23 19:40:21 +08:00
|
|
|
return $?
|
2019-01-23 11:28:09 +08:00
|
|
|
fi
|
2019-01-23 19:40:21 +08:00
|
|
|
return 1
|
2017-06-02 01:02:51 +08:00
|
|
|
}
|
|
|
|
|
2017-05-17 23:11:34 +08:00
|
|
|
function dodep() {
|
2019-03-20 00:41:28 +08:00
|
|
|
deforg=$1
|
|
|
|
defrepo=$2
|
|
|
|
rm -rf $defrepo
|
2019-01-23 11:28:09 +08: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 12:23:28 +08:00
|
|
|
if [[ "$BUILDKITE" == true ]]; then
|
2019-03-20 00:41:28 +08:00
|
|
|
# If BUILDKITE_BRANCH is set, it will contain either:
|
|
|
|
# * "branch" when the author's branch and target branch are in the same repo
|
|
|
|
# * "author:branch" when the author's branch is in their fork
|
|
|
|
# We can split on `:` into an array to check.
|
|
|
|
BUILDKITE_BRANCH_ARRAY=(${BUILDKITE_BRANCH//:/ })
|
|
|
|
if [[ "${#BUILDKITE_BRANCH_ARRAY[@]}" == "2" ]]; then
|
|
|
|
prAuthor=${BUILDKITE_BRANCH_ARRAY[0]}
|
|
|
|
prBranch=${BUILDKITE_BRANCH_ARRAY[1]}
|
|
|
|
else
|
|
|
|
prAuthor=$deforg
|
|
|
|
prBranch=$BUILDKITE_BRANCH
|
|
|
|
fi
|
|
|
|
clone $prAuthor $defrepo $prBranch ||
|
|
|
|
clone $deforg $defrepo $BUILDKITE_PULL_REQUEST_BASE_BRANCH ||
|
|
|
|
clone $deforg $defrepo $defbranch ||
|
2019-01-23 11:28:09 +08:00
|
|
|
return $?
|
|
|
|
else
|
2019-03-20 00:41:28 +08:00
|
|
|
clone $deforg $defrepo $ghprbSourceBranch ||
|
|
|
|
clone $deforg $defrepo $GIT_BRANCH ||
|
|
|
|
clone $deforg $defrepo `git rev-parse --abbrev-ref HEAD` ||
|
|
|
|
clone $deforg $defrepo $defbranch ||
|
2019-01-23 11:28:09 +08:00
|
|
|
return $?
|
|
|
|
fi
|
2017-06-02 01:02:51 +08:00
|
|
|
|
2019-03-20 00:41:28 +08:00
|
|
|
echo "$defrepo set to branch "`git -C "$defrepo" rev-parse --abbrev-ref HEAD`
|
2017-05-17 23:11:34 +08:00
|
|
|
}
|
|
|
|
|
2017-08-08 16:43:40 +08:00
|
|
|
##############################
|
|
|
|
|
2017-06-02 01:02:51 +08:00
|
|
|
echo 'Setting up matrix-js-sdk'
|
|
|
|
|
2017-05-17 23:11:34 +08:00
|
|
|
dodep matrix-org matrix-js-sdk
|
2017-06-02 01:02:51 +08:00
|
|
|
|
2019-03-12 19:06:57 +08:00
|
|
|
pushd matrix-js-sdk
|
|
|
|
yarn link
|
2023-03-31 22:52:29 +08:00
|
|
|
yarn install --frozen-lockfile
|
2019-03-12 19:06:57 +08:00
|
|
|
popd
|
|
|
|
|
|
|
|
yarn link matrix-js-sdk
|
|
|
|
|
2017-08-08 16:43:40 +08:00
|
|
|
##############################
|