GitHub is a Git repository management and hosting platform for companies, individuals and Open-Source projects to collaborate, track bugs and review code.
Integrating Blackfire with GitHub enables you to automate the performance testing of your code any time you modify it.
The expected workflow is as follows:
Caution
The following options require that Backfire is able to reach the HTTP server serving the pull request version of the code.
Tip
Some PaaS, like SymfonyCloud, or Platform.sh have built-in support for automatically deploying Pull Requests and trigerring Blackfire scenarios.
If your tool chain enables to deploy your code automatically for each new Pull Request, create a webhook payload that you will use (for instance with Jenkins, Travis,…) to let Blackfire run the test scenarios.
Please read the builds webhook documentation to configure them.
In order to make sure that GitHub can receive a notification back from Blackfire, please configure the following parameters:
endpoint |
(Mandatory) The endpoint to profile |
title |
(Optional) A title for the build (e.g .the Pull Request reference or title) |
external_id |
(Mandatory) The Git commit sha1 of the tip of the pull request |
external_parent_id |
(Optional) The sha1 of the parent build. This is typically the sha1 of the base branch of the pull request. |
The external_id
makes it possible for Blackfire to point the build report
notification to the correct commit. The external_parent_id
makes it possible
for you to write comparison assertions.
Blackfire’s PHP SDK enables to test the performance of your code without deploying it. You will need to configure it to:
Anytime a build report is available, the GitHub notification channel updates the commit status on the corresponding Pull Request.
Note
You must make sure to create the webhook payload like described above.
To configure a GitHub notification channel:
repo:status
scope;Build
tab of the related Blackfire environment and
look for the Notification Channel section;username/project-name
) and the GitHub Token to be
able to post build statuses on pull requests.