Add support for Heartwood

Co-authored-by: Rūdolfs Ošiņš <rudolfs@osins.org>
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
This commit is contained in:
xphoniex
2023-01-04 11:20:14 +01:00
committed by Rūdolfs Ošiņš
co-authored by Rūdolfs Ošiņš
parent adc159a71e
commit f72405a3e4
36 changed files with 561 additions and 182 deletions
+51
View File
@@ -0,0 +1,51 @@
#!/usr/bin/env bash
set -euo pipefail
PASSPHRASE=asdf
SEED="0.0.0.0:8080"
REPO_ROOT=$(git rev-parse --show-toplevel)
ID=$(echo $RANDOM | md5sum | head -c 8)
BASE_PATH=$REPO_ROOT/tests/tmp/create-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
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 $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
RAD_HOME=$PALM_RAD_HOME RAD_PASSPHRASE=$PASSPHRASE rad auth
GIT_AUTHOR_NAME="Alice Liddell"
GIT_AUTHOR_EMAIL="alice@radicle.xyz"
GIT_COMMITTER_NAME="Alice Liddell"
GIT_COMMITTER_EMAIL="alice@radicle.xyz"
RAD_DEBUG=1 RAD_HOME=$ALICE_RAD_HOME RAD_PASSPHRASE=$PASSPHRASE 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_HOME=$ALICE_RAD_HOME RAD_PASSPHRASE=$PASSPHRASE rad init --name "source-browsing" --description "Git repository for source browsing tests" --default-branch "main" --no-confirm
PROJECT_ID=$(RAD_HOME=$ALICE_RAD_HOME RAD_PASSPHRASE=$PASSPHRASE rad .)
cd $BASE_PATH
tar -cjf palm.tar.bz2 --exclude "post-receive" --exclude "pre-receive" -C $ALICE_RAD_HOME .
+14 -18
View File
@@ -10,8 +10,7 @@ PASSPHRASE=asdf
CONTAINER_NAME=radicle-http-api-with-fixtures
HTTP_API_BINARY=radicle-http-api
show_usage()
{
show_usage() {
echo
echo "Starts a http-api backend with test fixtures."
echo
@@ -26,8 +25,7 @@ show_usage()
echo
}
prompt_workspace_removal()
{
prompt_workspace_removal() {
echo "This will irrevocably destroy the following directories:"
echo
echo $WORKSPACE
@@ -35,19 +33,18 @@ prompt_workspace_removal()
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
;;
[yY][eE][sS])
rm -rf $WORKSPACE
echo "Done"
;;
*)
echo "Ok, I won't touch your data."
exit
;;
esac
}
prepare_workspace()
{
prepare_workspace() {
echo
echo "Unpacking fixture $FIXTURE"
mkdir -p $WORKSPACE
@@ -94,13 +91,13 @@ DETACH=false
while [ $# -ne 0 ]; do
case "$1" in
--binary|-b)
--binary | -b)
BINARY=true
;;
--detach|-d)
--detach | -d)
DETACH=true
;;
--non-interactive|-n)
--non-interactive | -n)
NON_INTERACTIVE=true
;;
*)
@@ -120,7 +117,6 @@ else
prepare_workspace
fi
if [ "$BINARY" = true ]; then
run_binary
else
+132
View File
@@ -0,0 +1,132 @@
#!/bin/sh
set -e
REV=1f55d7a32750b3e63c56aad00370411b90420a29
REPO_ROOT=$(git rev-parse --show-toplevel)
FIXTURE=$REPO_ROOT/tests/fixtures/seeds/palm-heartwood.tar.bz2
WORKSPACE=$REPO_ROOT/tests/tmp/palm
PASSPHRASE=asdf
CONTAINER_NAME=radicle-httpd-with-fixtures
HTTP_API_BINARY=radicle-httpd
show_usage() {
echo
echo "Starts a radicle-httpd backend with test fixtures."
echo
echo "USAGE:"
echo " run-httpd-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
if [ "$CI" = true ]; then
sudo chown -R 0:0 $WORKSPACE
fi
}
run_docker() {
echo "Starting docker at container $CONTAINER_NAME at $REV"
echo " RAD_HOME=$WORKSPACE RAD_PASSPHRASE=$PASSPHRASE radicle-http"
echo
exec docker run \
--init \
--publish 8080:8080 \
--rm \
--name $CONTAINER_NAME \
--volume $WORKSPACE:/app/radicle \
"$@" \
--env "RAD_HOME=/app/radicle" \
--env "RAD_PASSPHRASE=$PASSPHRASE" \
"gcr.io/radicle-services/radicle-httpd:$REV"
}
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/heartwood"
echo
exit 1
fi
echo
echo "Starting $HTTP_API_BINARY"
echo " RAD_HOME=$WORKSPACE $HTTP_API_BINARY"
echo
RAD_HOME=$WORKSPACE RAD_PASSPHRASE=$PASSPHRASE $HTTP_API_BINARY
}
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