diff --git a/.buildkite/hooks/pre-command b/.buildkite/hooks/pre-command new file mode 100755 index 000000000..436046ec2 --- /dev/null +++ b/.buildkite/hooks/pre-command @@ -0,0 +1,28 @@ +#!/bin/bash + +set +u + +echo "--- :golang: Setting up Golang build environment" + +if [[ ! -z "${BUILDKITE_GOLANG_IMPORT_PATH:-}" ]] && [[ "$BUILDKITE_GOLANG_IMPORT_PATH" != "" ]]; then + NEW_GOPATH="$(pwd)/tmp/go" + NEW_BUILD_CHECKOUT_PATH="$NEW_GOPATH/src/$BUILDKITE_GOLANG_IMPORT_PATH" + + # Create the regular GOPATH folders + mkdir -p "$NEW_GOPATH/bin" + mkdir -p "$NEW_GOPATH/src" + + # Create the /src/x.com/project/name path, and create a symlink of the + # current build to that new directory + mkdir -p "$NEW_BUILD_CHECKOUT_PATH" + rm -rf "$NEW_BUILD_CHECKOUT_PATH" + ln -s "$(pwd)" "$NEW_BUILD_CHECKOUT_PATH" + + export GOPATH=$NEW_GOPATH + echo "New \$GOPATH is set to $NEW_GOPATH" + echo "Build will now be at $NEW_BUILD_CHECKOUT_PATH" + + export BUILDKITE_BUILD_CHECKOUT_PATH=$NEW_BUILD_CHECKOUT_PATH +else + echo "No \$BUILDKITE_GOLANG_IMPORT_PATH set, skipping..." +fi diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml new file mode 100644 index 000000000..d4df4e941 --- /dev/null +++ b/.buildkite/pipeline.yml @@ -0,0 +1,6 @@ +--- +steps: + - command: './nightly.sh' + label: 'build & run geth' + env: + BUILDKITE_GOLANG_IMPORT_PATH: "github.com/ledgerwatch/turbo-geth" diff --git a/nightly.sh b/nightly.sh new file mode 100755 index 000000000..09d53ba8d --- /dev/null +++ b/nightly.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# running the job for 5 hours +let SLEEP_TIME=5*60*60 + +# GOFLAGS=-modcacherw is required for our CI +# to be able to remove go modules cache +GOFLAGS=-modcacherw make geth + +echo "running geth..." +./build/bin/geth > tgeth.log 2>&1 & + +GETH_PID=$! + +echo "sleeping for $SLEEP_TIME seconds" + +sleep $SLEEP_TIME + +echo "killing GETH (pid=$GETH_PID)" +kill $GETH_PID +echo "boom" + +wait $GETH_PID + +GETH_STATUS=$? +echo "The exit status of the process was $GETH_STATUS" + +exit $GETH_STATUS