cirrus: Record start/end time of important things

Previously we only reported the date/time at the beginning of a run
since it's not available in the Cirrus-CI system.  This commit
generalizes the solution, recording start/end times for all major
events.

Also the timestamps are recorded into a local file on the VMs.  This
is intended for future use, for example tracking execution-time
trends.

Signed-off-by: Chris Evich <cevich@redhat.com>
This commit is contained in:
Chris Evich 2019-01-17 14:04:24 -05:00
parent 0e3264ae4d
commit 7124ef71b5
No known key found for this signature in database
GPG key ID: 03EDC70FD578067F
5 changed files with 24 additions and 7 deletions

View file

@ -23,6 +23,8 @@ SCRIPT_BASE $SCRIPT_BASE
PACKER_BASE $PACKER_BASE PACKER_BASE $PACKER_BASE
" "
record_timestamp "cache-image build start"
show_env_vars show_env_vars
# Everything here is running on the 'image-builder-image' GCE image # Everything here is running on the 'image-builder-image' GCE image
@ -50,3 +52,5 @@ make libpod_images \
SCRIPT_BASE=$SCRIPT_BASE \ SCRIPT_BASE=$SCRIPT_BASE \
PACKER_BASE=$PACKER_BASE \ PACKER_BASE=$PACKER_BASE \
BUILT_IMAGE_SUFFIX=$BUILT_IMAGE_SUFFIX BUILT_IMAGE_SUFFIX=$BUILT_IMAGE_SUFFIX
record_timestamp "cache-image build end"

View file

@ -9,6 +9,8 @@ OS_RELEASE_ID $OS_RELEASE_ID
OS_RELEASE_VER $OS_RELEASE_VER OS_RELEASE_VER $OS_RELEASE_VER
" "
record_timestamp "integration test start"
clean_env clean_env
set -x set -x
@ -31,3 +33,5 @@ case "${OS_RELEASE_ID}-${OS_RELEASE_VER}" in
;; ;;
*) bad_os_id_ver ;; *) bad_os_id_ver ;;
esac esac
record_timestamp "integration test end"

View file

@ -17,7 +17,7 @@ PACKER_BASE=${PACKER_BASE:-./contrib/cirrus/packer}
CIRRUS_BUILD_ID=${CIRRUS_BUILD_ID:-DEADBEEF} # a human CIRRUS_BUILD_ID=${CIRRUS_BUILD_ID:-DEADBEEF} # a human
CIRRUS_BASE_SHA=${CIRRUS_BASE_SHA:-HEAD} CIRRUS_BASE_SHA=${CIRRUS_BASE_SHA:-HEAD}
CIRRUS_CHANGE_IN_REPO=${CIRRUS_CHANGE_IN_REPO:-FETCH_HEAD} CIRRUS_CHANGE_IN_REPO=${CIRRUS_CHANGE_IN_REPO:-FETCH_HEAD}
START_STAMP_FILEPATH="${START_STAMP_FILEPATH:-/var/tmp/start.timestamp}" TIMESTAMPS_FILEPATH="${TIMESTAMPS_FILEPATH:-/var/tmp/timestamps}"
if ! [[ "$PATH" =~ "/usr/local/bin" ]] if ! [[ "$PATH" =~ "/usr/local/bin" ]]
then then
@ -136,11 +136,14 @@ ircmsg() {
set -e set -e
} }
start_timestamp() { record_timestamp() {
req_env_var "START_STAMP_FILEPATH $START_STAMP_FILEPATH" set +x # sometimes it's turned on
[[ -r "$START_STAMP_FILEPATH" ]] || \ req_env_var "TIMESTAMPS_FILEPATH $TIMESTAMPS_FILEPATH"
echo -e ".\nThe time at the tone will be:\n$(date --iso-8601=seconds | \ echo "." # cirrus webui strips blank-lines
tee $START_STAMP_FILEPATH)\nBLEEEEEEEEEEP!\n.\n" # Cirrus strips blank lines from output STAMPMSG="The $1 time at the tone will be:"
echo -e "$STAMPMSG\t$(date --iso-8601=seconds)" | \
tee -a $TIMESTAMPS_FILEPATH
echo -e "BLEEEEEEEEEEP!\n."
} }
# Run sudo in directory with GOPATH set # Run sudo in directory with GOPATH set

View file

@ -4,7 +4,7 @@ set -e
source $(dirname $0)/lib.sh source $(dirname $0)/lib.sh
start_timestamp record_timestamp "env. setup start"
req_env_var " req_env_var "
USER $USER USER $USER
@ -85,3 +85,5 @@ then
# Only testing-VMs need deps installed # Only testing-VMs need deps installed
[[ -n "$PACKER_BUILDS" ]] || install_testing_dependencies # must exist in $GOPATH [[ -n "$PACKER_BUILDS" ]] || install_testing_dependencies # must exist in $GOPATH
fi fi
record_timestamp "env. setup end"

View file

@ -9,6 +9,8 @@ OS_RELEASE_ID $OS_RELEASE_ID
OS_RELEASE_VER $OS_RELEASE_VER OS_RELEASE_VER $OS_RELEASE_VER
" "
record_timestamp "unit test start"
clean_env clean_env
set -x set -x
@ -29,3 +31,5 @@ case "${OS_RELEASE_ID}-${OS_RELEASE_VER}" in
;; ;;
*) bad_os_id_ver ;; *) bad_os_id_ver ;;
esac esac
record_timestamp "unit test end"