The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

TeamCity::Message - Generate TeamCity build messages

VERSION

version 0.02

SYNOPSIS

use TeamCity::Message;

print STDOUT tc_message(
    type    => 'message',
    content => { text => 'This is a build message.' },
);

print STDOUT tc_message(
    type    => 'message',
    content => {
        text   => 'This is a serious build message.',
        status => 'ERROR',
    },
);

print STDOUT tc_message(
    type    => 'progressMessage',
    content => 'This is a progress message',
);

DESCRIPTION

This module generates TeamCity build messages.

See https://confluence.jetbrains.com/display/TCD9/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-reportingMessagesForBuildLogReportingMessagesForBuildLog for more details on TeamCity build messages.

API

tc_message(...)

Exported by default, this subroutine can be used to generate properly formatted and escaped TeamCity build message.

This subroutine accepts the following arguments:

  • type

    This is the message type, such as "message", "testStarted", "testFinished", etc.

    This is required.

  • content

    This can be either a string or a hash reference of key/value pairs. This will be turned into the content of the message.

    This is required.

When the content parameter is a hash reference, this subroutine will always add a "timestamp" to the message matching the current time. You can provide an explicit timestamp value in the content if you want to set this yourself.

tc_timestamp()

Exported on demand, this subroutine will return a string containing the current timestamp formatted suitably for consumption by TeamCity. You can pass this to the tc_message(...) function like so:

my $remembered_timestamp = tc_timestamp();

# ...time passes...

print STDOUT tc_message(
    type    => 'message',
    content => {
        text => 'This is a build message.',
        timestamp => $remembered_timestamp,
    }
);

SUPPORT

Please report all issues with this code using the GitHub issue tracker at https://github.com/maxmind/TeamCity-Message/issues.

Bugs may be submitted through https://github.com/maxmind/TeamCity-Message/issues.

AUTHOR

Dave Rolsky <autarch@urth.org>

CONTRIBUTORS

  • Dave Rolsky <drolsky@maxmind.com>

  • Mark Fowler <mark@twoshortplanks.com>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2017 by MaxMind, Inc..

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)