mirror of
https://github.com/goreleaser/goreleaser.git
synced 2025-01-10 03:47:03 +02:00
c805451de0
* Reordered indexes in docs * Fix customization order * Implemented extra files * Added tests for extra files * Added docs * Fix test with defaults * Removed path and folder from extra_files * Fix scope lint * Removed dead code * Removed dead code * Added test for common package * Fix linting * Removed false positive from golangci * Requested changes
111 lines
3.1 KiB
Markdown
111 lines
3.1 KiB
Markdown
---
|
|
title: Blobs
|
|
---
|
|
|
|
The `blobs` allows you to upload artifacts to Amazon S3, Azure Blob and
|
|
Google GCS.
|
|
|
|
## Customization
|
|
|
|
```yaml
|
|
# .goreleaser.yml
|
|
blobs:
|
|
# You can have multiple blob configs
|
|
-
|
|
# Template for the cloud provider name
|
|
# s3 for AWS S3 Storage
|
|
# azblob for Azure Blob Storage
|
|
# gs for Google Cloud Storage
|
|
provider: azblob
|
|
|
|
# Set a custom endpoint, useful if you're using a minio backend or
|
|
# other s3-compatible backends.
|
|
# Implies s3ForcePathStyle and requires provider to be `s3`
|
|
endpoint: https://minio.foo.bar
|
|
|
|
# Sets the bucket region.
|
|
# Requires provider to be `s3`
|
|
# Defaults to empty.
|
|
region: us-west-1
|
|
|
|
# Disables SSL
|
|
# Requires provider to be `s3`
|
|
# Defaults to false
|
|
disableSSL: true
|
|
|
|
# Template for the bucket name
|
|
bucket: goreleaser-bucket
|
|
|
|
# IDs of the artifacts you want to upload.
|
|
ids:
|
|
- foo
|
|
- bar
|
|
|
|
# Template for the path/name inside the bucket.
|
|
# Default is `{{ .ProjectName }}/{{ .Tag }}`
|
|
folder: "foo/bar/{{.Version}}"
|
|
|
|
# You can add extra pre-existing files to the release.
|
|
# The filename on the release will be the last part of the path (base). If
|
|
# another file with the same name exists, the latest one found will be used.
|
|
# Defaults to empty.
|
|
extra_files:
|
|
- glob: ./path/to/file.txt
|
|
- glob: ./glob/**/to/**/file/**/*
|
|
- glob: ./glob/foo/to/bar/file/foobar/override_from_previous
|
|
-
|
|
provider: gs
|
|
bucket: goreleaser-bucket
|
|
folder: "foo/bar/{{.Version}}"
|
|
-
|
|
provider: s3
|
|
bucket: goreleaser-bucket
|
|
folder: "foo/bar/{{.Version}}"
|
|
```
|
|
|
|
!!! tip
|
|
Learn more about the [name template engine](/customization/templates).
|
|
|
|
## Authentication
|
|
|
|
GoReleaser's blob pipe authentication varies depending upon the blob provider as mentioned below:
|
|
|
|
### S3 Provider
|
|
|
|
S3 provider support AWS
|
|
[default credential provider](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials)
|
|
chain in the following order:
|
|
|
|
- Environment variables.
|
|
- Shared credentials file.
|
|
- If your application is running on an Amazon EC2 instance, IAM role for Amazon EC2.
|
|
|
|
### Azure Blob Provider
|
|
|
|
Currently it supports authentication only with
|
|
[environment variables](https://docs.microsoft.com/en-us/azure/storage/common/storage-azure-cli#set-default-azure-storage-account-environment-variables):
|
|
|
|
- `AZURE_STORAGE_ACCOUNT`
|
|
- `AZURE_STORAGE_KEY` or `AZURE_STORAGE_SAS_TOKEN`
|
|
|
|
### [GCS Provider](https://cloud.google.com/docs/authentication/production)
|
|
|
|
GCS provider uses
|
|
[Application Default Credentials](https://cloud.google.com/docs/authentication/production)
|
|
in the following order:
|
|
|
|
- Environment Variable (`GOOGLE_APPLICATION_CREDENTIALS`)
|
|
- Default Service Account from the compute instance (Compute Engine,
|
|
Kubernetes Engine, Cloud function etc).
|
|
|
|
## ACLs
|
|
|
|
There is no common way to set ACLs across all bucket providers, so, [go-cloud][]
|
|
[does not support it yet][issue1108].
|
|
|
|
You are expected to set the ACLs on the bucket/folder/etc, depending on your
|
|
provider.
|
|
|
|
[go-cloud]: https://gocloud.dev/howto/blob/
|
|
[issue1108]: https://github.com/google/go-cloud/issues/1108
|