From 397a0fbeccf0caf47c867075e20e772d0c6054a4 Mon Sep 17 00:00:00 2001 From: Igor Mandrigin Date: Sun, 12 Apr 2020 21:37:15 +0300 Subject: [PATCH] Nightly tests (#444) * add a simple staging test * add buildkite stuff * buildkite setup like in the [example](https://github.com/buildkite/golang-example) * yamllint * add running geth for 1m as a buildkite command * fixups post go mod * workaround a stupid go issue * add 1 hour test * fix bash maths * run the job for 5 hours --- .buildkite/hooks/pre-command | 28 ++++++++++++++++++++++++++++ .buildkite/pipeline.yml | 6 ++++++ nightly.sh | 28 ++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100755 .buildkite/hooks/pre-command create mode 100644 .buildkite/pipeline.yml create mode 100755 nightly.sh 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