#!/usr/bin/env bash set -euo pipefail function cleanup { docker kill radicle-git-server-test } trap cleanup EXIT PASSPHRASE=asdf REV=40bdc662b2d48cbfaa87182b21457ef8f861b04a 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 auth --init --name palm --passphrase $PASSPHRASE 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 # git-server takes a while to copy commit hooks to the monorepo sleep 10 GIT_AUTHOR_NAME="Alice Liddell" GIT_AUTHOR_EMAIL="alice@radicle.xyz" GIT_COMMITTER_NAME="Alice Liddell" GIT_COMMITTER_EMAIL="alice@radicle.xyz" RAD_HOME=$ALICE_RAD_HOME rad auth --init --name alice --passphrase $PASSPHRASE 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 init --name "source-browsing" --description "Git repository for source browsing tests" --default-branch "main" --no-confirm sleep 10 RAD_HOME=$ALICE_RAD_HOME rad push --seed 0.0.0.0:8778 --all --sync PROJECT_ID=$(rad .) GIT_AUTHOR_NAME="Bob Belcher" GIT_AUTHOR_EMAIL="bob@radicle.xyz" GIT_COMMITTER_NAME="Bob Belcher" GIT_COMMITTER_EMAIL="bob@radicle.xyz" RAD_HOME=$BOB_RAD_HOME rad auth --init --name bob --passphrase $PASSPHRASE cd $BOB_CHECKOUT RAD_HOME=$BOB_RAD_HOME rad clone $PROJECT_ID --seed 0.0.0.0:8778 --no-confirm 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 cd $BASE_PATH tar -cjf palm.tar.bz2 --exclude "post-receive" --exclude "pre-receive" -C $PALM_RAD_HOME .