An open API service indexing awesome lists of open source software.

https://github.com/quarkusio/action-build-reporter

A GitHub action posting a build report in the job summary
https://github.com/quarkusio/action-build-reporter

Last synced: 4 months ago
JSON representation

A GitHub action posting a build report in the job summary

Awesome Lists containing this project

README

        

= action-build-reporter

A GitHub Action producing a build report of a workflow run and publishing it in the job summary.

This is the counterpart of the reports published by the https://github.com/quarkusio/quarkus-github-bot[Quarkus GitHub Bot] as pull request comments and is mostly useful for forks.

This action is based on:

- https://github.com/quarkiverse/quarkus-github-action[Quarkus GitHub Action]
- https://github.com/quarkusio/build-reporter[Build reporter]

== Setting up the action

When you have multiple jobs started in the same workflow,
you usually want to have only one report for all the jobs.

The jobs may upload artifacts named `build-reports-` containing the build reports,
an additional job depending on all these jobs will download the artifacts and analyze them.
Artifacts are accessible to the GitHub REST API only after the workflow run is completed.
Thus we use the GitHub `download-artifact` action which uses internal APIs to download the artifacts while the workflow run is still running.

The action has to be run in a separate job that depends on all the other build jobs.

For instance:

[source,yaml]
----
jobs:
... various other jobs ...

build-report:
runs-on: ubuntu-latest
name: Build report
needs: [build,jvm-green,jvm-initial,native-green,native-red]
if: always()
steps:
- uses: actions/download-artifact@v4
with:
path: build-reports-artifacts
pattern: build-reports-*
merge-multiple: true
- name: Produce report and add it as job summary
uses: quarkusio/action-build-reporter@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
build-reports-artifacts-path: build-reports-artifacts
forks-only: true
----

You can omit `forks-only` if you want to publish the job summary even for the upstream repository.

== Example

> image::documentation/screenshots/build-report-summary.png[]

== Release

This action is automatically deployed to the Maven repository of this GitHub repository when `main` is pushed.