Travis CI is a continuous integration platform for GitHub. If you run your PHPUnit tests on Travis, read on to learn more about how to configure it.
First, you need to store the Blackfire client and server credentials so that
Travis has access to them when running Blackfire related tests. By
convention, store them in a .blackfire.travis.ini
file that you won’t
commit in your repository:
1 2 3 4 5 6 7 8 9 | ; .blackfire.travis.ini [blackfire] server-id=<BLACKFIRE_SERVER_ID> server-token=<BLACKFIRE_SERVER_TOKEN> client-id=<BLACKFIRE_CLIENT_ID> client-token=<BLACKFIRE_CLIENT_TOKEN> endpoint=https://blackfire.io/ collector=https://blackfire.io/ |
Replace the placeholders above with your client and server credentials:
Then, encrypt the file and commit the encrypted file
(.blackfire.travis.ini.enc
) to the GitHub repository (replace
organization/project
with your GitHub repository name):
1 | travis encrypt-file .blackfire.travis.ini -r organization/project |
Caution
Note that Travis does not allow the decryption of encrypted files on GitHub forks, which means that pull requests tests won’t have access to the Blackfire configuration unless they come from the main repository.
Finally, update your .travis.yml
file to install Blackfire and run the
agent before running the tests according to the following template:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | language: php matrix: include: - php: 7.3 - php: 7.4 - php: 7.4 env: BLACKFIRE=on sudo: false cache: - $HOME/.composer/cache/files before_install: - | if [[ "$BLACKFIRE" = "on" ]]; then openssl aes-256-cbc -K $encrypted_16ab3ffdcd52_key -iv $encrypted_16ab3ffdcd52_iv -in .blackfire.travis.ini.enc -out ~/.blackfire.ini -d curl -L https://blackfire.io/api/v1/releases/agent/linux/amd64 | tar zxpf - chmod 755 agent && ./agent --config=~/.blackfire.ini --socket=unix:///tmp/blackfire.sock & fi install: - travis_retry composer install before_script: - phpenv config-rm xdebug.ini || true - | if [[ "$BLACKFIRE" = "on" ]]; then curl -L https://blackfire.io/api/v1/releases/probe/php/linux/amd64/$(php -r "echo PHP_MAJOR_VERSION . PHP_MINOR_VERSION;")-zts | tar zxpf - echo "extension=$(pwd)/$(ls blackfire-*.so | tr -d '[[:space:]]')" > ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/blackfire.ini echo "blackfire.agent_socket=unix:///tmp/blackfire.sock" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/blackfire.ini fi script: - phpunit |
Tip
Please update $encrypted_16ab3ffdcd52_key
and $encrypted_16ab3ffdcd52_iv
with the results of travis encrypt-file
.
Tip
To get more accurate results with Blackfire, we highly recommend to disable XDebug:
1 2 | before_script: - phpenv config-rm xdebug.ini || true |