Отправить вывод тестового покрытия go на стандартный вывод - отправить его на S3

Я хочу отправить html для go test -c в стандартный вывод, поэтому я могу обслуживать полученный HTML-код с сервера статических ресурсов S3.

Что-то вроде этого:

arti_fact="s3://cm-html/cm-api/$commit_sha"

go test -coverprofile cover.out .
go tool cover -html=cover.out -o /dev/stdout  | aws s3 cp - "$arti_fact"

есть ли способ записать в стандартный вывод без использования -o /dev/stdout?

1 ответ

Решение

Я считаю, что способ отправки информации о покрытии кода golang в S3 / GCS выглядит следующим образом:

go test -coverprofile cover.out .
go tool cover -html=cover.out -o /dev/stdout  | gsutil cp - gs://my-bucket/foo

если есть способ сделать это без временного файла, это было бы хорошо. Что-то типа:

go test -coverprofile '/dev/stdout'  | 
go tool cover -html='/dev/stdin' -o '/dev/stdout'  | 
gsutil cp - 'gs://my-bucket/foo'
Другие вопросы по тегам