michal-kocarek/teamcity-messages

Write TeamCity service messages from PHP.

1.2.1 2016-04-26 15:55 UTC

This package is not auto-updated.

Last update: 2024-03-16 16:36:20 UTC


README

This PHP library simplifies formatting and writing TeamCity service messages.

Build Status Coverage Status

Installation

To add TeamcityMessages as a local, per-project dependency to your project, simply add a dependency on michal-kocarek/teamcity-messages to your project's composer.json file. Here is a minimal example of a composer.json file that just defines a dependency on TeamcityMessages:

{
    "require": {
        "michal-kocarek/teamcity-messages": "^1.2"
    }
}

Usage

Here's the basic example. MessageLogger instance dumps everything through the writer.

StdOutWriter echoes output directly to script standard output. (You may use CallbackWriter to pass messages to arbitrary callback.)

Code like this:

use MichalKocarek\TeamcityMessages\MessageLogger;
use MichalKocarek\TeamcityMessages\Writers\StdoutWriter;

$logger = new MessageLogger(new StdoutWriter());

$logger->progressMessage('Reticulating splines...');

$logger->block('Counting llamas...', null, function(MessageLogger $logger) {
    $logger->logWarning('Too many llamas!');
    $logger->publishArtifacts('logs/llamas-count.csv');
});

produces following output:

##teamcity[progressMessage timestamp='2016-03-16T23:29:37.120555+0000' message='Reticulating splines...']
##teamcity[blockOpened timestamp='2016-03-16T23:29:37.134303+0000' name='Counting llamas...']
##teamcity[message timestamp='2016-03-16T23:29:37.134535+0000' text='Too many llamas!' status='WARNING']
##teamcity[publishArtifacts timestamp='2016-03-16T23:29:37.134635+0000' path='logs/llamas-count.csv']
##teamcity[blockClosed timestamp='2016-03-16T23:29:37.134993+0000' name='Counting llamas...']

See MessageLogger public methods for more info about the usage and link below for detailed message specification.

Links

Authors

Michal Kočárek michal.kocarek@brainbox.cz - https://twitter.com/michalkocarek

License

This library is licensed under the MIT License – see the LICENSE file for details.