mirror of
https://seed.radicle.dev/rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git
synced 2026-10-18 19:30:27 +08:00
Migrate to the heartwood protocol stack
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
This commit is contained in:
+71
-45
@@ -1,30 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
killall radicle-node
|
||||
killall git-daemon
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
function cleanup {
|
||||
docker kill radicle-git-server-test
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
|
||||
PASSPHRASE=asdf
|
||||
REV=40bdc662b2d48cbfaa87182b21457ef8f861b04a
|
||||
export RAD_PASSPHRASE=asdf
|
||||
|
||||
REPO_ROOT=$(git rev-parse --show-toplevel)
|
||||
ID=$(echo $RANDOM | md5sum | head -c 8)
|
||||
BASE_PATH=$REPO_ROOT/tests/tmp/create-seed-fixture-$ID
|
||||
ID=$(echo $RANDOM | md5sum | head -c 4)
|
||||
BASE_PATH=$REPO_ROOT/tests/tmp/seed-fixture-$ID
|
||||
|
||||
TEST_REPO_ARCHIVE=$REPO_ROOT/tests/fixtures/repos/source-browsing.tar.bz2
|
||||
TEST_REPO_NAME=source-browsing
|
||||
TEST_REPO_PATH=$BASE_PATH/repos/$TEST_REPO_NAME
|
||||
|
||||
PALM_RAD_HOME=$BASE_PATH/seeds/palm
|
||||
PALM_CHECKOUT=$BASE_PATH/checkout/palm
|
||||
ALICE_RAD_HOME=$BASE_PATH/peers/alice
|
||||
ALICE_CHECKOUT=$BASE_PATH/checkout/alice
|
||||
BOB_RAD_HOME=$BASE_PATH/peers/bob
|
||||
BOB_CHECKOUT=$BASE_PATH/checkout/bob
|
||||
|
||||
mkdir -p $PALM_RAD_HOME
|
||||
mkdir -p $PALM_CHECKOUT
|
||||
mkdir -p $ALICE_RAD_HOME
|
||||
mkdir -p $ALICE_CHECKOUT
|
||||
mkdir -p $BOB_RAD_HOME
|
||||
@@ -33,62 +32,89 @@ mkdir -p $TEST_REPO_PATH
|
||||
|
||||
tar -xf $TEST_REPO_ARCHIVE -C $TEST_REPO_PATH
|
||||
|
||||
RAD_HOME=$PALM_RAD_HOME rad auth --init --name palm --passphrase $PASSPHRASE
|
||||
### PALM NODE ###
|
||||
|
||||
docker run \
|
||||
--detach \
|
||||
--init \
|
||||
--publish 8778:8778 \
|
||||
--rm \
|
||||
--env RAD_HOME=/app/radicle \
|
||||
--name radicle-git-server-test \
|
||||
--volume $PALM_RAD_HOME:/app/radicle \
|
||||
"gcr.io/radicle-services/git-server:$REV" \
|
||||
--passphrase $PASSPHRASE \
|
||||
--allow-unauthorized-keys
|
||||
eval $(ssh-agent)
|
||||
|
||||
# git-server takes a while to copy commit hooks to the monorepo
|
||||
sleep 10
|
||||
export RAD_HOME=$PALM_RAD_HOME
|
||||
export RAD_SEED=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee
|
||||
|
||||
GIT_AUTHOR_NAME="Alice Liddell"
|
||||
GIT_AUTHOR_EMAIL="alice@radicle.xyz"
|
||||
GIT_COMMITTER_NAME="Alice Liddell"
|
||||
GIT_COMMITTER_EMAIL="alice@radicle.xyz"
|
||||
rad auth
|
||||
radicle-node --listen 0.0.0.0:3446 --git-daemon 0.0.0.0:4446 &
|
||||
|
||||
RAD_HOME=$ALICE_RAD_HOME rad auth --init --name alice --passphrase $PASSPHRASE
|
||||
### ALICE ###
|
||||
|
||||
export RAD_HOME=$ALICE_RAD_HOME
|
||||
export RAD_SEED=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
|
||||
export GIT_AUTHOR_NAME="Alice Liddell"
|
||||
export GIT_AUTHOR_EMAIL="alice@radicle.xyz"
|
||||
export GIT_COMMITTER_NAME="Alice Liddell"
|
||||
export GIT_COMMITTER_EMAIL="alice@radicle.xyz"
|
||||
|
||||
rad auth
|
||||
|
||||
cd $ALICE_CHECKOUT
|
||||
|
||||
git clone $TEST_REPO_PATH
|
||||
cd $TEST_REPO_NAME
|
||||
git checkout feature/branch
|
||||
git checkout orphaned-branch
|
||||
|
||||
git checkout main
|
||||
rad init --name "source-browsing" \
|
||||
--description "Git repository for source browsing tests" \
|
||||
--default-branch "main" \
|
||||
--no-confirm
|
||||
|
||||
RAD_HOME=$ALICE_RAD_HOME rad init --name "source-browsing" --description "Git repository for source browsing tests" --default-branch "main" --no-confirm
|
||||
git checkout feature/branch
|
||||
git push rad
|
||||
|
||||
sleep 10
|
||||
RAD_HOME=$ALICE_RAD_HOME rad push --seed 0.0.0.0:8778 --all --sync
|
||||
PROJECT_ID=$(rad .)
|
||||
git checkout orphaned-branch
|
||||
git push rad
|
||||
|
||||
radicle-node --listen 0.0.0.0:3444 --git-daemon 0.0.0.0:4444 \
|
||||
--connect z6Mkk7oqY4pPxhMmGEotDYsFo97vhCj85BLY1H256HrJmjN8@0.0.0.0:3446 &
|
||||
|
||||
GIT_AUTHOR_NAME="Bob Belcher"
|
||||
GIT_AUTHOR_EMAIL="bob@radicle.xyz"
|
||||
GIT_COMMITTER_NAME="Bob Belcher"
|
||||
GIT_COMMITTER_EMAIL="bob@radicle.xyz"
|
||||
sleep 1
|
||||
|
||||
RAD_HOME=$BOB_RAD_HOME rad auth --init --name bob --passphrase $PASSPHRASE
|
||||
### PALM CLONE ###
|
||||
|
||||
cd $PALM_CHECKOUT
|
||||
export RAD_HOME=$PALM_RAD_HOME
|
||||
rad clone rad:zKtT7DmF9H34KkvcKj9PHW19WzjT
|
||||
|
||||
### BOB ###
|
||||
|
||||
export GIT_AUTHOR_NAME="Bob Belcher"
|
||||
export GIT_AUTHOR_EMAIL="bob@radicle.xyz"
|
||||
export GIT_COMMITTER_NAME="Bob Belcher"
|
||||
export GIT_COMMITTER_EMAIL="bob@radicle.xyz"
|
||||
export GIT_COMMITTER_DATE="Mon Dec 21 14:00 2022 +0100"
|
||||
|
||||
export RAD_HOME=$BOB_RAD_HOME
|
||||
export RAD_SEED=fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
|
||||
|
||||
rad auth
|
||||
rad auth
|
||||
radicle-node --listen 0.0.0.0:3445 --git-daemon 0.0.0.0:4445 \
|
||||
--connect z6Mkk7oqY4pPxhMmGEotDYsFo97vhCj85BLY1H256HrJmjN8@0.0.0.0:3446 &
|
||||
|
||||
sleep 2
|
||||
|
||||
cd $BOB_CHECKOUT
|
||||
RAD_HOME=$BOB_RAD_HOME rad clone $PROJECT_ID --seed 0.0.0.0:8778 --no-confirm
|
||||
rad clone rad:zKtT7DmF9H34KkvcKj9PHW19WzjT
|
||||
|
||||
cd $TEST_REPO_NAME
|
||||
echo "Updated readme" > README.md
|
||||
git add README.md
|
||||
git commit --message "Update readme" --date "Mon Nov 21 14:00 2022 +0100"
|
||||
RAD_HOME=$BOB_RAD_HOME rad push --seed 0.0.0.0:8778
|
||||
RAD_HOME=$BOB_RAD_HOME rad sync --seed 0.0.0.0:8778 --self
|
||||
RAD_HOME=$BOB_RAD_HOME rad sync --seed 0.0.0.0:8778
|
||||
git commit --message "Update readme" --date "$GIT_COMMITTER_DATE"
|
||||
git push rad
|
||||
|
||||
### WAIT FOR SYNC WITH PALM ###
|
||||
|
||||
sleep 2
|
||||
|
||||
cd $BASE_PATH
|
||||
tar -cjf palm.tar.bz2 --exclude "post-receive" --exclude "pre-receive" -C $PALM_RAD_HOME .
|
||||
|
||||
killall radicle-node
|
||||
killall git-daemon
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
killall radicle-node
|
||||
killall git-daemon
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
export RAD_PASSPHRASE=asdf
|
||||
|
||||
REPO_ROOT=$(git rev-parse --show-toplevel)
|
||||
ID=$(echo $RANDOM | md5sum | head -c 4)
|
||||
BASE_PATH=$REPO_ROOT/tests/tmp/heartwood-$ID
|
||||
|
||||
TEST_REPO_ARCHIVE=$REPO_ROOT/tests/fixtures/repos/source-browsing.tar.bz2
|
||||
TEST_REPO_NAME=source-browsing
|
||||
TEST_REPO_PATH=$BASE_PATH/repos/$TEST_REPO_NAME
|
||||
|
||||
PALM_RAD_HOME=$BASE_PATH/seeds/palm
|
||||
PALM_CHECKOUT=$BASE_PATH/checkout/palm
|
||||
ALICE_RAD_HOME=$BASE_PATH/peers/alice
|
||||
ALICE_CHECKOUT=$BASE_PATH/checkout/alice
|
||||
BOB_RAD_HOME=$BASE_PATH/peers/bob
|
||||
BOB_CHECKOUT=$BASE_PATH/checkout/bob
|
||||
|
||||
mkdir -p $PALM_RAD_HOME
|
||||
mkdir -p $PALM_CHECKOUT
|
||||
mkdir -p $ALICE_RAD_HOME
|
||||
mkdir -p $ALICE_CHECKOUT
|
||||
mkdir -p $BOB_RAD_HOME
|
||||
mkdir -p $BOB_CHECKOUT
|
||||
mkdir -p $TEST_REPO_PATH
|
||||
|
||||
tar -xf $TEST_REPO_ARCHIVE -C $TEST_REPO_PATH
|
||||
|
||||
### PALM NODE ###
|
||||
|
||||
eval $(ssh-agent)
|
||||
|
||||
export RAD_HOME=$PALM_RAD_HOME
|
||||
export RAD_SEED=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee
|
||||
|
||||
rad auth
|
||||
radicle-node --listen 0.0.0.0:3446 --git-daemon 0.0.0.0:4446 &
|
||||
|
||||
### ALICE ###
|
||||
|
||||
export RAD_HOME=$ALICE_RAD_HOME
|
||||
export RAD_SEED=ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
|
||||
export GIT_AUTHOR_NAME="Alice Liddell"
|
||||
export GIT_AUTHOR_EMAIL="alice@radicle.xyz"
|
||||
export GIT_COMMITTER_NAME="Alice Liddell"
|
||||
export GIT_COMMITTER_EMAIL="alice@radicle.xyz"
|
||||
|
||||
rad auth
|
||||
|
||||
cd $ALICE_CHECKOUT
|
||||
|
||||
git clone $TEST_REPO_PATH
|
||||
cd $TEST_REPO_NAME
|
||||
|
||||
git checkout main
|
||||
rad init --name "source-browsing" \
|
||||
--description "Git repository for source browsing tests" \
|
||||
--default-branch "main" \
|
||||
--no-confirm
|
||||
|
||||
git checkout feature/branch
|
||||
git push rad
|
||||
|
||||
git checkout orphaned-branch
|
||||
git push rad
|
||||
|
||||
radicle-node --listen 0.0.0.0:3444 --git-daemon 0.0.0.0:4444 \
|
||||
--connect z6Mkk7oqY4pPxhMmGEotDYsFo97vhCj85BLY1H256HrJmjN8@0.0.0.0:3446 &
|
||||
|
||||
sleep 1
|
||||
|
||||
### PALM CLONE ###
|
||||
|
||||
cd $PALM_CHECKOUT
|
||||
export RAD_HOME=$PALM_RAD_HOME
|
||||
rad clone rad:zKtT7DmF9H34KkvcKj9PHW19WzjT
|
||||
|
||||
### BOB ###
|
||||
|
||||
export GIT_AUTHOR_NAME="Bob Belcher"
|
||||
export GIT_AUTHOR_EMAIL="bob@radicle.xyz"
|
||||
export GIT_COMMITTER_NAME="Bob Belcher"
|
||||
export GIT_COMMITTER_EMAIL="bob@radicle.xyz"
|
||||
export GIT_COMMITTER_DATE="Mon Dec 21 14:00 2022 +0100"
|
||||
|
||||
export RAD_HOME=$BOB_RAD_HOME
|
||||
export RAD_SEED=fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
|
||||
|
||||
rad auth
|
||||
rad auth
|
||||
radicle-node --listen 0.0.0.0:3445 --git-daemon 0.0.0.0:4445 \
|
||||
--connect z6Mkk7oqY4pPxhMmGEotDYsFo97vhCj85BLY1H256HrJmjN8@0.0.0.0:3446 &
|
||||
|
||||
sleep 2
|
||||
|
||||
cd $BOB_CHECKOUT
|
||||
rad clone rad:zKtT7DmF9H34KkvcKj9PHW19WzjT
|
||||
|
||||
cd $TEST_REPO_NAME
|
||||
echo "Updated readme" > README.md
|
||||
git add README.md
|
||||
git commit --message "Update readme" --date "$GIT_COMMITTER_DATE"
|
||||
git push rad
|
||||
|
||||
### WAIT FOR SYNC WITH PALM ###
|
||||
|
||||
sleep 2
|
||||
|
||||
cd $BASE_PATH
|
||||
tar -cjf palm.tar.bz2 --exclude "post-receive" --exclude "pre-receive" -C $PALM_RAD_HOME .
|
||||
|
||||
killall radicle-node
|
||||
killall git-daemon
|
||||
@@ -1,128 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
REV=40bdc662b2d48cbfaa87182b21457ef8f861b04a
|
||||
|
||||
REPO_ROOT=$(git rev-parse --show-toplevel)
|
||||
FIXTURE=$REPO_ROOT/tests/fixtures/seeds/palm.tar.bz2
|
||||
WORKSPACE=$REPO_ROOT/tests/tmp/palm
|
||||
PASSPHRASE=asdf
|
||||
CONTAINER_NAME=radicle-http-api-with-fixtures
|
||||
HTTP_API_BINARY=radicle-http-api
|
||||
|
||||
show_usage() {
|
||||
echo
|
||||
echo "Starts a http-api backend with test fixtures."
|
||||
echo
|
||||
echo "USAGE:"
|
||||
echo " run-http-api-with-fixtures [-b|d|h|n]"
|
||||
echo
|
||||
echo "OPTIONS:"
|
||||
echo " -b --binary Use a ${HTTP_API_BINARY} binary that is in PATH to avoid using Docker."
|
||||
echo " -d --detach Daemonize the docker process."
|
||||
echo " -h --help Print this Help."
|
||||
echo " -n --non-interactive Run in non-interactive mode, no user prompts."
|
||||
echo
|
||||
}
|
||||
|
||||
prompt_workspace_removal() {
|
||||
echo "This will irrevocably destroy the following directories:"
|
||||
echo
|
||||
echo $WORKSPACE
|
||||
echo
|
||||
|
||||
read -r -p "Are you sure you want to continue? [yes/no]: " confirm
|
||||
case "$confirm" in
|
||||
[yY][eE][sS])
|
||||
rm -rf $WORKSPACE
|
||||
echo "Done"
|
||||
;;
|
||||
*)
|
||||
echo "Ok, I won't touch your data."
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
prepare_workspace() {
|
||||
echo
|
||||
echo "Unpacking fixture $FIXTURE"
|
||||
mkdir -p $WORKSPACE
|
||||
tar -xf $FIXTURE -C $WORKSPACE
|
||||
}
|
||||
|
||||
run_docker() {
|
||||
echo "Starting docker at container $CONTAINER_NAME at $REV"
|
||||
echo " http-api --root $WORKSPACE --passphrase $PASSPHRASE"
|
||||
echo
|
||||
|
||||
exec docker run \
|
||||
--init \
|
||||
--publish 8777:8777 \
|
||||
--rm \
|
||||
--name $CONTAINER_NAME \
|
||||
--volume $WORKSPACE:/app/radicle \
|
||||
"$@" \
|
||||
"gcr.io/radicle-services/http-api:$REV" \
|
||||
--passphrase $PASSPHRASE
|
||||
}
|
||||
|
||||
run_binary() {
|
||||
if ! [ -x "$(command -v $HTTP_API_BINARY)" ]; then
|
||||
echo
|
||||
echo "Couldn't find the $HTTP_API_BINARY binary in your PATH."
|
||||
echo "You can compile it from source:"
|
||||
echo " 👉 https://github.com/radicle-dev/radicle-client-services/tree/${REV}/http-api"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Starting $HTTP_API_BINARY"
|
||||
echo " $HTTP_API_BINARY --listen 0.0.0.0:8777 --root ${WORKSPACE} --passphrase $PASSPHRASE"
|
||||
echo
|
||||
|
||||
$HTTP_API_BINARY --listen 0.0.0.0:8777 --root $WORKSPACE --passphrase $PASSPHRASE
|
||||
}
|
||||
|
||||
BINARY=false
|
||||
NON_INTERACTIVE=false
|
||||
DETACH=false
|
||||
|
||||
while [ $# -ne 0 ]; do
|
||||
case "$1" in
|
||||
--binary | -b)
|
||||
BINARY=true
|
||||
;;
|
||||
--detach | -d)
|
||||
DETACH=true
|
||||
;;
|
||||
--non-interactive | -n)
|
||||
NON_INTERACTIVE=true
|
||||
;;
|
||||
*)
|
||||
show_usage
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
if [ "$NON_INTERACTIVE" = true ]; then
|
||||
rm -rf $WORKSPACE
|
||||
prepare_workspace
|
||||
else
|
||||
prompt_workspace_removal
|
||||
prepare_workspace
|
||||
fi
|
||||
|
||||
if [ "$BINARY" = true ]; then
|
||||
run_binary
|
||||
else
|
||||
if [ "$DETACH" = true ]; then
|
||||
run_docker --detach
|
||||
else
|
||||
run_docker
|
||||
fi
|
||||
fi
|
||||
@@ -4,7 +4,7 @@ set -e
|
||||
REV=f1de61ad8897a845f2be49e3e2b2951bc678b678
|
||||
|
||||
REPO_ROOT=$(git rev-parse --show-toplevel)
|
||||
FIXTURE=$REPO_ROOT/tests/fixtures/seeds/palm-heartwood.tar.bz2
|
||||
FIXTURE=$REPO_ROOT/tests/fixtures/seeds/palm.tar.bz2
|
||||
WORKSPACE=$REPO_ROOT/tests/tmp/palm
|
||||
PASSPHRASE=asdf
|
||||
BINARY_PATH="$REPO_ROOT/tests/tmp"
|
||||
|
||||
Reference in New Issue
Block a user