-
Notifications
You must be signed in to change notification settings - Fork 625
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ISSUE #4688] Capture build scans on ge.apache.org to benefit from deep build insights #4685
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Welcome to the Apache EventMesh community!!
This is your first PR in our project. We're very excited to have you onboard contributing. Your contributions are greatly appreciated!
Please make sure that the changes are covered by tests.
We will be here shortly.
Let us know if you need any help!
Want to get closer to the community?
WeChat Assistant | WeChat Public Account | Slack |
---|---|---|
![]() |
![]() |
Join Slack Chat |
Mailing Lists:
Name | Description | Subscribe | Unsubscribe | Archive |
---|---|---|---|---|
Users | User support and questions mailing list | Subscribe | Unsubscribe | Mail Archives |
Development | Development related discussions | Subscribe | Unsubscribe | Mail Archives |
Commits | All commits to repositories | Subscribe | Unsubscribe | Mail Archives |
Issues | Issues or PRs comments and reviews | Subscribe | Unsubscribe | Mail Archives |
Thank you for your PR! Could you please explain the differences or advantages between the build scan in this PR and the GitHub Actions build scan currently used in the project? (My understanding is that this is not to replace various types of CI, but rather mainly to aggregate, analyze, and visualize the data of CI. Is that so?) Why can't I find the build scan for this CI? May I ask what is the difference between these two services? |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #4685 +/- ##
=========================================
Coverage 17.39% 17.40%
- Complexity 1759 1760 +1
=========================================
Files 797 797
Lines 29850 29850
Branches 2579 2579
=========================================
+ Hits 5192 5194 +2
+ Misses 24177 24176 -1
+ Partials 481 480 -1 ☔ View full report in Codecov by Sentry. |
@clayburn Welcome to EventMesh community! The compilation speed of Gradle Enterprise is faster than GitHub Actions, which is an advantage. I have a few questions:
Regarding the difference between ge.apache.org and ge.solutions-team.gradle.com mentioned by @pandaapo, I think that the CI test results on ge.solutions-team.gradle.com are examples provided by Gradle Enterprise. Once the EventMesh community accepts the PR, the build results will appear on ge.apache.org. |
The build scan will go much more in depth into what was happening during the Gradle portion of your GitHub Actions workflow. GitHub Actions is mostly limited to console log viewing at this point in time, so the build scan can provide much more insights into task execution, test results, performance, etc. You are correct that it is not to replace CI, but to give deeper insights into the Gradle build itself.
You cannot see build scans from this PR because GitHub Actions does not allow builds from forks to access secrets. So, because this build did not access the
Essentially, what @Pil0tXia said is correct. The
Not directly from the PR page, but we make it easier to find build scans via our gradle-build-action. Among other features, this action can create a Job Summary on the action itself. See here for an example from the AndroidX project (which may require scrolling down). I did not include that change in the PR for simplicity, but we'd be glad to add that action in a follow-up PR. It also has some caching features that can be used. Short of that action, the link to the build scan is printed at the end of the Gradle build.
Thanks for the feedback. Using the console log in GitHub Actions and using the build scan can be complementary when investigating build failures. When using build scans, the goal is for the console log to be something of a last resort. Build and test failures are called out more prominently in the build scan. For example, see a build failure and a test failure from the beam project.
Because Gradle Enterprise is complimentary to GitHub Actions, there is nothing that it provides that helps you with this problem. Gradle Enterprise will not start builds for you.
We have already onboarded a number of projects. I listed some of them in the PR. We are just slowly working through the ASF and offering this manually to projects, doing due diligence that the change does not cause any bad side effects. |
remote(gradleEnterprise.buildCache) { | ||
enabled = false | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi there, @clayburn is on break for the holidays, so I'll be helping out until he is back. com.gradle.enterprise
and com.gradle.common-custom-user-data-gradle-plugin
are settings plugins, so they need to be applied in settings.gradle
.
Additionally, could you please create a corresponding issue for this PR and link them?
Sure. I created an issue here, but it doesn't look like I have permission link this PR to the issue myself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it doesn't look like I have permission link this PR to the issue myself.
It's OK now.
@clayburn Thank you for your explanation! It will be good if we can get the Build Scan link corresponding to the PR and the original build functionality remain unaffected. |
Hey @Pil0tXia
If you are referring to the fact that build scans cannot be published for PRs from forks, at the moment there is not much that can be done about this limitation, because the secret required for publishing the scans is not available to forks. We are, however, working on a workaround for this, so it should be possible in the future. For PRs that can publish build scans, the links will be available in the logs for individual GitHub Actions jobs. As @clayburn mentioned, we'd be happy to add the gradle-build-action in a follow-on PR, which can add a convenient summary surfacing these build scan links to the workflow summary. In any case, the original build functionality will remain unaffected. |
For forked repositories with GitHub Actions enabled, after triggering CI, Gradle Enterprise cannot access the Apache repository key. Will this result in CI failure? Moreover, has the GE key been set up in our repository? Is there a need for additional application?
Yes, we would like to display the Build Scan link in the PR. |
It won't result in a CI failure. The use of
This is a good question.
Unfortunately, the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will be created in the individual action page
At the bottom of the PR page is a summary of the GitHub Actions results after the CI has been triggered by reviewers.
After the gradle-build-action
is introduced, the example Actions page you provided can be found at the bottom of the PR page, is that right?
Correct |
@clayburn @tylerbertrand @runningcode Looking forward to the PR introducing |
@clayburn @tylerbertrand @runningcode , When I saw the build scan links in the CI log after PR #4696 was merged into the origin repository, I had a new question. The CI process before the PR is merged cannot publish build scans because PR is mostly from forks, such as the CI of PR #4696 before being merged. |
@pandaapo - We are working on methods to handle publishing build scans from forks in a way that does not expose the access key to those forks, but we are not ready to use it yet. Once we are, we can follow up with that improvement to give you more data. |
Closes #4688.
Motivation
This PR publishes a build scan for every CI build on GitHub Actions and for every local build from an authenticated Apache committer. The build will not fail if publishing fails.
The build scans of the Apache EventMesh project will be published to the Develocity instance at ge.apache.org, hosted by the Apache Software Foundation and run in partnership between the ASF and Gradle. This Develocity instance has all features and extensions enabled and is freely available for use by the Apache EventMesh project and all other Apache projects. Currently, this is being used by other ASF projects such as Beam, Kafka, Solr, and more.
On this Develocity instance, Apache EventMesh will have access not only to all of the published build scans but other aggregate data features such as:
To see an example of the insights, see this Build Scan. Please let me know if there are any questions about the value of Develocity or the changes in this pull request and I’d be happy to address them.
Modifications
Documentation