Limit usage of GitHub Actions Annotations

- only use annotations for `opoo` and `onoe` if
  `HOMEBREW_GITHUB_ACTIONS` is set. This will make using `brew` less
  noisy in GitHub Actions for third parties. See
  Homebrew/discussions#5602.
- if we've already called `puts_annotation_if_env_set`, then we no
  longer need to print the message to `$stderr`. The message from the
  annotation already show up in the GitHub Actions log, so printing to
  `$stderr` just leads to duplicate messages in the log.

While we're here, let's make sure to forward the `file:` and `line:`
kwargs of `puts_annotation_if_env_set` to the `Annotation` constructor.
This commit is contained in:
Carlo Cabrera 2024-09-15 11:31:54 +08:00
parent 1f306b4d15
commit c6e2cd9037
No known key found for this signature in database
GPG Key ID: C74D447FC549A1D0
2 changed files with 11 additions and 5 deletions

View File

@ -65,8 +65,11 @@ module Kernel
sig { params(message: T.any(String, Exception)).void }
def opoo(message)
Tty.with($stderr) do |stderr|
stderr.puts Formatter.warning(message, label: "Warning")
GitHub::Actions.puts_annotation_if_env_set(:warning, message.to_s)
if ENV["HOMEBREW_GITHUB_ACTIONS"].present?
GitHub::Actions.puts_annotation_if_env_set(:warning, message.to_s)
else
stderr.puts Formatter.warning(message, label: "Warning")
end
end
end
@ -79,8 +82,11 @@ module Kernel
require "utils/github/actions"
Tty.with($stderr) do |stderr|
stderr.puts Formatter.error(message, label: "Error")
GitHub::Actions.puts_annotation_if_env_set(:error, message.to_s)
if ENV["HOMEBREW_GITHUB_ACTIONS"].present?
GitHub::Actions.puts_annotation_if_env_set(:error, message.to_s)
else
stderr.puts Formatter.error(message, label: "Error")
end
end
end

View File

@ -51,7 +51,7 @@ module GitHub
return unless env_set?
std = (type == :notice) ? $stdout : $stderr
std.puts Annotation.new(type, message)
std.puts Annotation.new(type, message, file:, line:)
end
# Helper class for formatting annotations on GitHub Actions.