mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-01-08 03:31:59 +02:00
1.9 KiB
1.9 KiB
title | series | hideFromIndex | weight |
---|---|---|---|
S3 | customization | true | 115 |
Since v0.74.0, GoReleaser supports pushing artifacts to Amazon S3 and other API-compatible block storages (minio for example).
Right now, the implementation is quite simple and probably won't cover all use cases. If you need one of such use cases, please open an issue/pull request.
Customization
# .goreleaser.yml
s3:
# You can have multiple s3 configs
-
# Bucket name (without the s3:// prefix)
# Default is empty.
bucket: my-bucket
# AWS Region to use.
# Defaults is us-east-1
region: us-east-1
# path inside the bucket.
# This is parsed with the Go template engine and the following variables
# are available:
# - ProjectName
# - Tag
# - Version (Git tag without `v` prefix)
# There is also a template function "time" that takes a Go time format
# string to insert a formated timestamp into the release name.
# Default is `{{ .ProjectName }}/{{ .Tag }}`
folder: "foo/bar/{{.Version}}"
# Set a custom profile to use for this s3 config. If you have multiple
# profiles setup in you ~/.aws config, this shall help defining which
# profile to use in which s3 bucket.
# Default is empty.
profile: my-profile
# Endpoint allows you to set a custom endpoint, which is useful if you
# want to push your artifacts to a minio server for example.
# Default is AWS S3 URL.
endpoint: "http://minio.foo.com"
Authentication
GoReleaser will authenticate using the same methods defined by aws-cli. You can read the docs to find out more about it.
You can also set diferent profile names for each S3 config, so you may be able to push to buckets in different accounts, for example.