From d6cd51c79f9b39dbafed1350f3b4eadea828699e Mon Sep 17 00:00:00 2001 From: Russ Magee Date: Wed, 29 Jan 2020 15:57:43 -0800 Subject: [PATCH] Moved body of CI push script into project from bacillus --- bacillus/pushbuild.sh | 74 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100755 bacillus/pushbuild.sh diff --git a/bacillus/pushbuild.sh b/bacillus/pushbuild.sh new file mode 100755 index 0000000..bdadbc1 --- /dev/null +++ b/bacillus/pushbuild.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +export PATH=/usr/local/bin:/usr/bin:/usr/lib/ccache/bin:/bin +echo "workdir: ${BACILLUS_WORKDIR}" +mkdir -p "${BACILLUS_ARTFDIR}" + +export GO111MODULE=on +export GOPATH="${HOME}/go" +# GOCACHE will be phased out in v1.12. [github.com/golang/go/issues/26809] +export GOCACHE="${HOME}/.cache/go-build" + +echo "---" +go env +echo "---" +echo "passed env:" +env +echo "---" + +cd ${REPO} +branch=$(git for-each-ref --sort=-committerdate --format='%(refname)' | head -n 1) +echo "Building most recent push on branch $branch" +git checkout "$branch" +ls + +stage "Build" +make all + +stage "Test(Authtoken)" +echo "Clearing test user $USER ~/.xs_id file ..." +rm -f ~/.xs_id +echo "Setting dummy authtoken in ~/.xs_id ..." +echo "localhost:asdfasdfasdf" >~/.xs_id +echo "Performing remote command on @localhost via authtoken login ..." +tokentest=$(timeout 10 xs -x "echo -n FOO" @localhost) +if [ "${tokentest}" != "FOO" ]; then + echo "AUTHTOKEN LOGIN FAILED" + exit 1 +else + echo "client cmd performed OK." + unset tokentest +fi + +stage "Test(S->C)" +echo "Testing secure copy from server -> client ..." +tmpdir=$$ +mkdir -p /tmp/$tmpdir +cd /tmp/$tmpdir +xc @localhost:${BACILLUS_WORKDIR}/build/xs/cptest . +echo -n "Integrity check on copied files (sha1sum) ..." +sha1sum $(find cptest -type f | sort) >sc.sha1sum +diff sc.sha1sum ${BACILLUS_WORKDIR}/build/xs/cptest.sha1sum +stat=$? + +cd - +rm -rf /tmp/$tmpdir +if [ $stat -eq "0" ]; then + echo "OK." +else + echo "FAILED!" + exit $stat +fi + +stage "Test(C->S)" +echo "TODO ..." + +stage "Artifacts" +echo -n "Creating tarfile ..." +tar -cz --exclude=.git --exclude=cptest -f ${BACILLUS_ARTFDIR}/xs.tgz . + +stage "Cleanup" +rm -f ~/.xs_id + +echo +echo "--Done--"