The model for contributing project actions aren't the same as build action.
Instead of calling @{code project.addAction(someProjectAction)} we will
need to contribute through a project's build steps. This is done by
overriding
BuildStep.getProjectAction(AbstractProject)
.
When the project UI is rendered, Jenkins will the overriden method to ask
build steps to contribute their project actions.
Since the project UI is rendered infrequently, we can't just provide a static
action for the latest build. Instead, in this
ProjectGcsUploadReport
action we will need to dynamically look for the latest build's
BuildGcsUploadReport
and return the values that such report returns.