mirror of
https://github.com/avatao-content/test-tutorial-framework
synced 2024-11-14 21:57:17 +00:00
Refactor bootstrap script to better handle increased complexity
This commit is contained in:
parent
7905f51922
commit
a33a04f4ad
@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
shopt -s expand_aliases
|
shopt -s expand_aliases
|
||||||
|
[ "$(uname)" == "Darwin" ] && alias sed="gsed" || :
|
||||||
|
|
||||||
TFW_POSTFIX=tutorial-framework
|
TFW_POSTFIX=tutorial-framework
|
||||||
BASEIMAGE=baseimage-${TFW_POSTFIX}
|
BASEIMAGE=baseimage-${TFW_POSTFIX}
|
||||||
@ -8,55 +9,89 @@ TEST=test-${TFW_POSTFIX}
|
|||||||
FRONTEND=frontend-${TFW_POSTFIX}
|
FRONTEND=frontend-${TFW_POSTFIX}
|
||||||
LOGFILE=/tmp/bootstrap_tfw.log
|
LOGFILE=/tmp/bootstrap_tfw.log
|
||||||
|
|
||||||
[ "$(uname)" == "Darwin" ] && alias sed="gsed" || :
|
run()
|
||||||
|
{
|
||||||
|
trap 'err_cleanup; showlog' ERR
|
||||||
|
trap cleanlog EXIT
|
||||||
|
: > $LOGFILE
|
||||||
|
|
||||||
|
clone_repos
|
||||||
|
install_frontend_deps
|
||||||
|
if [ -z "$TFWDEV" ]; then
|
||||||
|
LATESTTAG="$(fetch_latest_tag)"
|
||||||
|
LATESTTAG=$LATESTTAG pin_latest_baseimage
|
||||||
|
LATESTTAG=$LATESTTAG build_latest_baseimage
|
||||||
|
cleanup_repos
|
||||||
|
merge_repos
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "You can build & start TFW by executing the command: ${TEST}/hack/tfw.sh start"
|
||||||
|
}
|
||||||
|
|
||||||
showlog() { echo && echo "Error! Showing logs:" && cat $LOGFILE; }
|
showlog() { echo && echo "Error! Showing logs:" && cat $LOGFILE; }
|
||||||
cleanlog() { rm $LOGFILE; }
|
cleanlog() { rm $LOGFILE; }
|
||||||
err_cleanup() { rm -rf "$BASEIMAGE" "$FRONTEND" "$TEST"; }
|
err_cleanup() { rm -rf "$BASEIMAGE" "$FRONTEND" "$TEST"; }
|
||||||
trap 'err_cleanup; showlog' ERR
|
|
||||||
trap cleanlog EXIT
|
|
||||||
|
|
||||||
: > $LOGFILE
|
clone_repos()
|
||||||
echo -n "Cloning TFW repositories... "
|
{
|
||||||
echo -n "baseimage... " && git clone git@github.com:avatao-content/${BASEIMAGE}.git >> $LOGFILE 2>&1
|
echo -n "Cloning TFW repositories... "
|
||||||
echo -n "frontend... " && git clone git@github.com:avatao-content/${FRONTEND}.git >> $LOGFILE 2>&1
|
echo -n "baseimage... " && git clone git@github.com:avatao-content/${BASEIMAGE}.git >> $LOGFILE 2>&1
|
||||||
echo -n "test... " && git clone git@github.com:avatao-content/${TEST}.git >> $LOGFILE 2>&1
|
echo -n "frontend... " && git clone git@github.com:avatao-content/${FRONTEND}.git >> $LOGFILE 2>&1
|
||||||
echo "Done!"
|
echo -n "test... " && git clone git@github.com:avatao-content/${TEST}.git >> $LOGFILE 2>&1
|
||||||
|
echo "Done!"
|
||||||
|
}
|
||||||
|
|
||||||
echo -n "Installing frontend dependencies... "
|
install_frontend_deps()
|
||||||
cd "$FRONTEND"
|
{
|
||||||
yarn install >> $LOGFILE 2>&1
|
echo -n "Installing frontend dependencies... "
|
||||||
cd ..
|
cd "$FRONTEND"
|
||||||
echo "Done!"
|
yarn install >> $LOGFILE 2>&1
|
||||||
|
cd ..
|
||||||
|
echo "Done!"
|
||||||
|
}
|
||||||
|
|
||||||
if [ -z "$TFWDEV" ]; then
|
pin_latest_baseimage()
|
||||||
|
{
|
||||||
echo -n "Pinning latest TFW baseimage version... "
|
echo -n "Pinning latest TFW baseimage version... "
|
||||||
LATESTTAG="$(git ls-remote --tags git@github.com:avatao-content/${BASEIMAGE}.git |
|
|
||||||
cut -f2 |
|
|
||||||
grep -oP '(?<=refs/tags/)\w+-\d{8}$' |
|
|
||||||
sort -t '-' -k2 |
|
|
||||||
tail -n 1)"
|
|
||||||
echo -n "which is ${LATESTTAG}... "
|
echo -n "which is ${LATESTTAG}... "
|
||||||
sed -i "1 s/.*/&:${LATESTTAG}/" "${TEST}/solvable/Dockerfile"
|
sed -i "1 s/.*/&:${LATESTTAG}/" "${TEST}/solvable/Dockerfile"
|
||||||
echo "Done!"
|
echo "Done!"
|
||||||
|
}
|
||||||
|
|
||||||
|
build_latest_baseimage()
|
||||||
|
{
|
||||||
echo -n "Building baseimage at ${LATESTTAG}... "
|
echo -n "Building baseimage at ${LATESTTAG}... "
|
||||||
cd "$BASEIMAGE"
|
cd "$BASEIMAGE"
|
||||||
git checkout "$LATESTTAG" >> $LOGFILE 2>&1
|
git checkout "$LATESTTAG" >> $LOGFILE 2>&1
|
||||||
cd ..
|
cd ..
|
||||||
TFWTAG=$LATESTTAG ${TEST}/hack/tfw.sh buildtfw >> $LOGFILE 2>&1
|
TFWTAG=$LATESTTAG ${TEST}/hack/tfw.sh buildtfw >> $LOGFILE 2>&1
|
||||||
echo "Done!"
|
echo "Done!"
|
||||||
|
}
|
||||||
|
|
||||||
|
fetch_latest_tag()
|
||||||
|
{
|
||||||
|
echo -n "$(git ls-remote --tags git@github.com:avatao-content/${BASEIMAGE}.git |
|
||||||
|
cut -f2 |
|
||||||
|
grep -oP '(?<=refs/tags/)\w+-\d{8}$' |
|
||||||
|
sort -t '-' -k2 |
|
||||||
|
tail -n 1)"
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup_repos()
|
||||||
|
{
|
||||||
rm -rf "${BASEIMAGE}"
|
rm -rf "${BASEIMAGE}"
|
||||||
rm -rf "${TEST}/.git"
|
rm -rf "${TEST}/.git"
|
||||||
rm -rf "${FRONTEND}/.git"
|
rm -rf "${FRONTEND}/.git"
|
||||||
|
}
|
||||||
|
|
||||||
|
merge_repos()
|
||||||
|
{
|
||||||
echo -n "Merging repositories... "
|
echo -n "Merging repositories... "
|
||||||
NESTED_FRONTEND="${TEST}/solvable/frontend"
|
NESTED_FRONTEND="${TEST}/solvable/frontend"
|
||||||
rm -rf $NESTED_FRONTEND
|
rm -rf $NESTED_FRONTEND
|
||||||
mv "$FRONTEND" "$NESTED_FRONTEND"
|
mv "$FRONTEND" "$NESTED_FRONTEND"
|
||||||
echo "Done!"
|
echo "Done!"
|
||||||
fi
|
}
|
||||||
|
|
||||||
echo
|
run
|
||||||
echo "You can build & start TFW by executing the command: ${TEST}/hack/tfw.sh start"
|
|
||||||
|
@ -1 +1 @@
|
|||||||
URL=https://git.io/vxBfj SHA=dcc634915977f14e32a65d0601ebbfe4cc1cd46b77a1b1de7dd157744e616851 bash -c 'cmd="$(curl -fsSL $URL)" && [ $(echo "$cmd" | sha256sum | cut -d " " -f1) == $SHA ] && echo "$cmd" | bash || echo Checksum mismatch!'
|
URL=https://git.io/vxBfj SHA=d8d41c268c36bbc972ac0ebf01fddc39bb8f53dab59c30d6ed3e46b98cbccfa2 bash -c 'cmd="$(curl -fsSL $URL)" && [ $(echo "$cmd" | sha256sum | cut -d " " -f1) == $SHA ] && echo "$cmd" | bash || echo Checksum mismatch!'
|
||||||
|
Loading…
Reference in New Issue
Block a user