Отправить вывод тестового покрытия 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'