Builds are the results of running scenario; they are environment specific, they need to be defined on the Blackfire.io Environment page.
Scenarios are run from the Blackfire's servers. If the profiled application
is behind a firewall, let the Blackfire servers access the application by
220.127.116.11 in your configuration for
the web ports (usually
Starting a build with a webhook offers the most flexible way of triggering Blackfire scenarios based on third-party tool events. Thereby, you can add performance tests at any point of your tool-chain. For instance, you can:
1 2 3 4
curl -X POST https://blackfire.io/api/v2/builds/env/ENV-UUID/webhook \ --user "CLIENT-ID:CLIENT-TOKEN" \ -d "endpoint=http://symfony.com/" \ -d "title=Build title"
ENV-UUID by your environment UUID (and
by your personal credentials if needed).
The webhook endpoint accepts the following request parameters:
||The endpoint to profile|
||A hash of keys/values. For example with curl:
||The username for HTTP Basic authentication|
||The password for HTTP Basic authentication|
||The IP for forcing DNS|
||Disable SSL certificates verification (this is unsecure)|
||A unique identifier for the build; commonly, a unique reference from a third party service like the Git commit sha1 related to the build|
||The unique identifier of the parent build, to compare with the current build, like the reference Git commit sha1|
||A URL related to the build, like a Pull Request|
You can also trigger a build via the Blackfire CLI:
1 2 3 4 5 6 7 8 9 10 11
blackfire build-trigger \ http://example.com/ \ --env=ENV-UUID \ --title="Build PR 1234" \ --external-id=`git log -1 --pretty=\"%H\"` \ --external-parent-id=`git merge-base master HEAD` \ --external-url="https://github.com/symfony/symfony/pull/11882" \ --http-password="http-password" \ --http-username="http-username" \ --ip="127.0.0.1" \ --ssl-no-verify
If you are going to use the webhook from a shared service (like a Jenkins server), we recommend that you create a specific "bot" user to be used for automation like triggering webhooks from your continuous integration platform.
Blackfire environment pages provide a simple form (in the Dashboard
that lets you configure a webhook payload and generate the corresponding
cURL command. For your convenience, you can even trigger a build from there.