Documentation
¶
Overview ¶
Package config contains the model and loader of the goreleaser configuration file.
Index ¶
- type Archive
- type Before
- type Blob
- type Build
- type BuildHook
- type BuildHooks
- type Changelog
- type Checksum
- type CommitAuthor
- type Docker
- type DockerManifest
- type EnvFiles
- type ExtraFile
- type Filters
- type FlagArray
- type FormatOverride
- type GitHubURLs
- type GitLabURLs
- type GiteaURLs
- type Homebrew
- type HomebrewDependency
- type HookConfig
- type Hooks
- type IgnoredBuild
- type Milestone
- type NFPM
- type NFPMAPK
- type NFPMAPKSignature
- type NFPMDeb
- type NFPMDebScripts
- type NFPMDebSignature
- type NFPMDebTriggers
- type NFPMOverridables
- type NFPMRPM
- type NFPMRPMSignature
- type NFPMScripts
- type Project
- type Publisher
- type Release
- type Repo
- type RepoRef
- type Scoop
- type Sign
- type Snapcraft
- type SnapcraftAppMetadata
- type SnapcraftExtraFiles
- type Snapshot
- type Source
- type StringArray
- type Upload
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Archive ¶
type Archive struct {
ID string `yaml:",omitempty"`
Builds []string `yaml:",omitempty"`
NameTemplate string `yaml:"name_template,omitempty"`
Replacements map[string]string `yaml:",omitempty"`
Format string `yaml:",omitempty"`
FormatOverrides []FormatOverride `yaml:"format_overrides,omitempty"`
WrapInDirectory string `yaml:"wrap_in_directory,omitempty"`
Files []string `yaml:",omitempty"`
AllowDifferentBinaryCount bool `yaml:"allow_different_binary_count"`
}
Archive config used for the archive.
type Blob ¶ added in v0.160.0
type Blob struct {
Bucket string `yaml:",omitempty"`
Provider string `yaml:",omitempty"`
Region string `yaml:",omitempty"`
DisableSSL bool `yaml:"disableSSL,omitempty"`
Folder string `yaml:",omitempty"`
KMSKey string `yaml:",omitempty"`
IDs []string `yaml:"ids,omitempty"`
Endpoint string `yaml:",omitempty"` // used for minio for example
ExtraFiles []ExtraFile `yaml:"extra_files,omitempty"`
}
Blob contains config for GO CDK blob.
type Build ¶
type Build struct {
ID string `yaml:",omitempty"`
Goos []string `yaml:",omitempty"`
Goarch []string `yaml:",omitempty"`
Goarm []string `yaml:",omitempty"`
Gomips []string `yaml:",omitempty"`
Targets []string `yaml:",omitempty"`
Ignore []IgnoredBuild `yaml:",omitempty"`
Dir string `yaml:",omitempty"`
Main string `yaml:",omitempty"`
Ldflags StringArray `yaml:",omitempty"`
Flags FlagArray `yaml:",omitempty"`
Binary string `yaml:",omitempty"`
Hooks HookConfig `yaml:",omitempty"`
Env []string `yaml:",omitempty"`
Lang string `yaml:",omitempty"`
Asmflags StringArray `yaml:",omitempty"`
Gcflags StringArray `yaml:",omitempty"`
ModTimestamp string `yaml:"mod_timestamp,omitempty"`
Skip bool `yaml:",omitempty"`
GoBinary string `yaml:",omitempty"`
}
Build contains the build configuration section.
type BuildHook ¶ added in v0.160.0
type BuildHook struct {
Dir string `yaml:",omitempty"`
Cmd string `yaml:",omitempty"`
Env []string `yaml:",omitempty"`
}
func (*BuildHook) UnmarshalYAML ¶ added in v0.160.0
UnmarshalYAML is a custom unmarshaler that allows simplified declarations of commands as strings.
type BuildHooks ¶ added in v0.160.0
type BuildHooks []BuildHook
func (*BuildHooks) UnmarshalYAML ¶ added in v0.160.0
func (bhc *BuildHooks) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is a custom unmarshaler that allows simplified declaration of single command.
type Changelog ¶
type Changelog struct {
Filters Filters `yaml:",omitempty"`
Sort string `yaml:",omitempty"`
Skip bool `yaml:",omitempty"`
}
Changelog Config.
type Checksum ¶
type Checksum struct {
NameTemplate string `yaml:"name_template,omitempty"`
Algorithm string `yaml:"algorithm,omitempty"`
IDs []string `yaml:"ids,omitempty"`
Disable bool `yaml:"disable,omitempty"`
}
Checksum config.
type CommitAuthor ¶
CommitAuthor is the author of a Git commit.
type Docker ¶
type Docker struct {
Binaries []string `yaml:",omitempty"`
Builds []string `yaml:",omitempty"`
Goos string `yaml:",omitempty"`
Goarch string `yaml:",omitempty"`
Goarm string `yaml:",omitempty"`
Dockerfile string `yaml:",omitempty"`
ImageTemplates []string `yaml:"image_templates,omitempty"`
SkipPush string `yaml:"skip_push,omitempty"`
Files []string `yaml:"extra_files,omitempty"`
BuildFlagTemplates []string `yaml:"build_flag_templates,omitempty"`
}
Docker image config.
type DockerManifest ¶ added in v0.160.0
type DockerManifest struct {
NameTemplate string `yaml:"name_template,omitempty"`
ImageTemplates []string `yaml:"image_templates,omitempty"`
CreateFlags []string `yaml:"create_flags,omitempty"`
PushFlags []string `yaml:"push_flags,omitempty"`
}
DockerManifest config.
type EnvFiles ¶
type EnvFiles struct {
GitHubToken string `yaml:"github_token,omitempty"`
GitLabToken string `yaml:"gitlab_token,omitempty"`
GiteaToken string `yaml:"gitea_token,omitempty"`
}
EnvFiles holds paths to files that contains environment variables values like the github token for example.
type ExtraFile ¶ added in v0.160.0
type ExtraFile struct {
Glob string `yaml:"glob,omitempty"`
}
ExtraFile on a release.
type FlagArray ¶
type FlagArray []string
FlagArray is a wrapper for an array of strings.
func (*FlagArray) UnmarshalYAML ¶
UnmarshalYAML is a custom unmarshaler that wraps strings in arrays.
type FormatOverride ¶
FormatOverride is used to specify a custom format for a specific GOOS.
type GitHubURLs ¶
type GitHubURLs struct {
API string `yaml:"api,omitempty"`
Upload string `yaml:"upload,omitempty"`
Download string `yaml:"download,omitempty"`
SkipTLSVerify bool `yaml:"skip_tls_verify,omitempty"`
}
GitHubURLs holds the URLs to be used when using github enterprise.
type GitLabURLs ¶ added in v0.160.0
type GitLabURLs struct {
API string `yaml:"api,omitempty"`
Download string `yaml:"download,omitempty"`
SkipTLSVerify bool `yaml:"skip_tls_verify,omitempty"`
}
GitLabURLs holds the URLs to be used when using gitlab ce/enterprise.
type GiteaURLs ¶ added in v0.160.0
type GiteaURLs struct {
API string `yaml:"api,omitempty"`
Download string `yaml:"download,omitempty"`
SkipTLSVerify bool `yaml:"skip_tls_verify,omitempty"`
}
GiteaURLs holds the URLs to be used when using gitea.
type Homebrew ¶
type Homebrew struct {
Name string `yaml:",omitempty"`
Tap RepoRef `yaml:",omitempty"`
CommitAuthor CommitAuthor `yaml:"commit_author,omitempty"`
Folder string `yaml:",omitempty"`
Caveats string `yaml:",omitempty"`
Plist string `yaml:",omitempty"`
Install string `yaml:",omitempty"`
PostInstall string `yaml:"post_install,omitempty"`
Dependencies []HomebrewDependency `yaml:",omitempty"`
Test string `yaml:",omitempty"`
Conflicts []string `yaml:",omitempty"`
Description string `yaml:",omitempty"`
Homepage string `yaml:",omitempty"`
License string `yaml:",omitempty"`
SkipUpload string `yaml:"skip_upload,omitempty"`
DownloadStrategy string `yaml:"download_strategy,omitempty"`
URLTemplate string `yaml:"url_template,omitempty"`
CustomRequire string `yaml:"custom_require,omitempty"`
CustomBlock string `yaml:"custom_block,omitempty"`
IDs []string `yaml:"ids,omitempty"`
Goarm string `yaml:"goarm,omitempty"`
// Deprecated: in favour of Tap
GitHub Repo `yaml:",omitempty"`
GitLab Repo `yaml:",omitempty"`
}
Homebrew contains the brew section.
type HomebrewDependency ¶ added in v0.160.0
HomebrewDependency represents Homebrew dependency.
func (*HomebrewDependency) UnmarshalYAML ¶ added in v0.160.0
func (a *HomebrewDependency) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is a custom unmarshaler that accept brew deps in both the old and new format.
type HookConfig ¶ added in v0.160.0
type HookConfig struct {
Pre BuildHooks `yaml:",omitempty"`
Post BuildHooks `yaml:",omitempty"`
}
type IgnoredBuild ¶
type IgnoredBuild struct {
Goos, Goarch, Goarm, Gomips string
}
IgnoredBuild represents a build ignored by the user.
type Milestone ¶ added in v0.160.0
type Milestone struct {
Repo Repo `yaml:",omitempty"`
Close bool `yaml:",omitempty"`
FailOnError bool `yaml:"fail_on_error,omitempty"`
NameTemplate string `yaml:"name_template,omitempty"`
}
Milestone config used for VCS milestone.
type NFPM ¶
type NFPM struct {
NFPMOverridables `yaml:",inline"`
Overrides map[string]NFPMOverridables `yaml:"overrides,omitempty"`
ID string `yaml:",omitempty"`
Builds []string `yaml:",omitempty"`
Formats []string `yaml:",omitempty"`
Vendor string `yaml:",omitempty"`
Homepage string `yaml:",omitempty"`
Maintainer string `yaml:",omitempty"`
Description string `yaml:",omitempty"`
License string `yaml:",omitempty"`
Bindir string `yaml:",omitempty"`
Meta bool `yaml:",omitempty"` // make package without binaries - only deps
}
NFPM config.
type NFPMAPK ¶ added in v0.160.0
type NFPMAPK struct {
Signature NFPMAPKSignature `yaml:"signature,omitempty"`
}
NFPMAPK is custom config only available on apk packages.
type NFPMAPKSignature ¶ added in v0.160.0
type NFPMAPKSignature struct {
// RSA private key in PEM format
KeyFile string `yaml:"key_file,omitempty"`
KeyPassphrase string `yaml:"-"` // populated from environment variable
// defaults to <maintainer email>.rsa.pub
KeyName string `yaml:"key_name,omitempty"`
}
NFPMAPKSignature contains config for signing apk packages created by nfpm.
type NFPMDeb ¶ added in v0.160.0
type NFPMDeb struct {
Scripts NFPMDebScripts `yaml:"scripts,omitempty"`
Triggers NFPMDebTriggers `yaml:"triggers,omitempty"`
Breaks []string `yaml:"breaks,omitempty"`
VersionMetadata string `yaml:"metadata,omitempty"` // Deprecated: Moved to Info
Signature NFPMDebSignature `yaml:"signature,omitempty"`
}
NFPMDeb is custom configs that are only available on deb packages.
type NFPMDebScripts ¶ added in v0.160.0
type NFPMDebScripts struct {
Rules string `yaml:"rules,omitempty"`
Templates string `yaml:"templates,omitempty"`
}
NFPMDebScripts is scripts only available on deb packages.
type NFPMDebSignature ¶ added in v0.160.0
type NFPMDebSignature struct {
// PGP secret key, can be ASCII-armored
KeyFile string `yaml:"key_file,omitempty"`
KeyPassphrase string `yaml:"-"` // populated from environment variable
// origin, maint or archive (defaults to origin)
Type string `yaml:"type,omitempty"`
}
NFPMDebSignature contains config for signing deb packages created by nfpm.
type NFPMDebTriggers ¶ added in v0.160.0
type NFPMDebTriggers struct {
Interest []string `yaml:"interest,omitempty"`
InterestAwait []string `yaml:"interest_await,omitempty"`
InterestNoAwait []string `yaml:"interest_noawait,omitempty"`
Activate []string `yaml:"activate,omitempty"`
ActivateAwait []string `yaml:"activate_await,omitempty"`
ActivateNoAwait []string `yaml:"activate_noawait,omitempty"`
}
NFPMDebTriggers contains triggers only available for deb packages. https://wiki.debian.org/DpkgTriggers https://man7.org/linux/man-pages/man5/deb-triggers.5.html
type NFPMOverridables ¶
type NFPMOverridables struct {
FileNameTemplate string `yaml:"file_name_template,omitempty"`
PackageName string `yaml:"package_name,omitempty"`
Epoch string `yaml:"epoch,omitempty"`
Release string `yaml:"release,omitempty"`
Replacements map[string]string `yaml:",omitempty"`
Dependencies []string `yaml:",omitempty"`
Recommends []string `yaml:",omitempty"`
Suggests []string `yaml:",omitempty"`
Conflicts []string `yaml:",omitempty"`
Replaces []string `yaml:",omitempty"`
EmptyFolders []string `yaml:"empty_folders,omitempty"`
Contents files.Contents `yaml:"contents,omitempty"`
Files map[string]string `yaml:",omitempty"` // deprecated: use contents instead
ConfigFiles map[string]string `yaml:"config_files,omitempty"` // deprecated: use contents instead
Symlinks map[string]string `yaml:"symlinks,omitempty"` // deprecated: use contents instead
Scripts NFPMScripts `yaml:"scripts,omitempty"`
RPM NFPMRPM `yaml:"rpm,omitempty"`
Deb NFPMDeb `yaml:"deb,omitempty"`
APK NFPMAPK `yaml:"apk,omitempty"`
}
NFPMOverridables is used to specify per package format settings.
type NFPMRPM ¶ added in v0.160.0
type NFPMRPM struct {
Summary string `yaml:"summary,omitempty"`
Group string `yaml:"group,omitempty"`
Compression string `yaml:"compression,omitempty"`
ConfigNoReplaceFiles map[string]string `yaml:"config_noreplace_files,omitempty"` // depreacated: use contents instead
GhostFiles []string `yaml:"ghost_files,omitempty"` // depreacated: use contents instead
Signature NFPMRPMSignature `yaml:"signature,omitempty"`
}
NFPMRPM is custom configs that are only available on RPM packages.
type NFPMRPMSignature ¶ added in v0.160.0
type NFPMScripts ¶
type NFPMScripts struct {
PreInstall string `yaml:"preinstall,omitempty"`
PostInstall string `yaml:"postinstall,omitempty"`
PreRemove string `yaml:"preremove,omitempty"`
PostRemove string `yaml:"postremove,omitempty"`
}
NFPMScripts is used to specify maintainer scripts.
type Project ¶
type Project struct {
ProjectName string `yaml:"project_name,omitempty"`
Env []string `yaml:",omitempty"`
Release Release `yaml:",omitempty"`
Milestones []Milestone `yaml:",omitempty"`
Brews []Homebrew `yaml:",omitempty"`
Scoop Scoop `yaml:",omitempty"`
Builds []Build `yaml:",omitempty"`
Archives []Archive `yaml:",omitempty"`
NFPMs []NFPM `yaml:"nfpms,omitempty"`
Snapcrafts []Snapcraft `yaml:",omitempty"`
Snapshot Snapshot `yaml:",omitempty"`
Checksum Checksum `yaml:",omitempty"`
Dockers []Docker `yaml:",omitempty"`
DockerManifests []DockerManifest `yaml:"docker_manifests,omitempty"`
Artifactories []Upload `yaml:",omitempty"`
Uploads []Upload `yaml:",omitempty"`
Blobs []Blob `yaml:"blobs,omitempty"`
Publishers []Publisher `yaml:"publishers,omitempty"`
Changelog Changelog `yaml:",omitempty"`
Dist string `yaml:",omitempty"`
Signs []Sign `yaml:",omitempty"`
EnvFiles EnvFiles `yaml:"env_files,omitempty"`
Before Before `yaml:",omitempty"`
Source Source `yaml:",omitempty"`
// this is a hack ¯\_(ツ)_/¯
SingleBuild Build `yaml:"build,omitempty"`
// should be set if using github enterprise
GitHubURLs GitHubURLs `yaml:"github_urls,omitempty"`
// should be set if using a private gitlab
GitLabURLs GitLabURLs `yaml:"gitlab_urls,omitempty"`
// should be set if using Gitea
GiteaURLs GiteaURLs `yaml:"gitea_urls,omitempty"`
}
Project includes all project configuration.
type Publisher ¶ added in v0.160.0
type Publisher struct {
Name string `yaml:",omitempty"`
IDs []string `yaml:"ids,omitempty"`
Checksum bool `yaml:",omitempty"`
Signature bool `yaml:",omitempty"`
Dir string `yaml:",omitempty"`
Cmd string `yaml:",omitempty"`
Env []string `yaml:",omitempty"`
}
Publisher configuration.
type Release ¶
type Release struct {
GitHub Repo `yaml:",omitempty"`
GitLab Repo `yaml:",omitempty"`
Gitea Repo `yaml:",omitempty"`
Draft bool `yaml:",omitempty"`
Disable bool `yaml:",omitempty"`
Prerelease string `yaml:",omitempty"`
NameTemplate string `yaml:"name_template,omitempty"`
IDs []string `yaml:"ids,omitempty"`
ExtraFiles []ExtraFile `yaml:"extra_files,omitempty"`
}
Release config used for the GitHub/GitLab release.
type RepoRef ¶ added in v0.160.0
type RepoRef struct {
Owner string `yaml:",omitempty"`
Name string `yaml:",omitempty"`
Token string `yaml:",omitempty"`
}
RepoRef represents any kind of repo which may differ from the one we are building from and may therefore also require separate authentication e.g. Homebrew Tap, Scoop bucket.
type Scoop ¶
type Scoop struct {
Name string `yaml:",omitempty"`
Bucket RepoRef `yaml:",omitempty"`
CommitAuthor CommitAuthor `yaml:"commit_author,omitempty"`
CommitMessageTemplate string `yaml:"commit_msg_template,omitempty"`
Homepage string `yaml:",omitempty"`
Description string `yaml:",omitempty"`
License string `yaml:",omitempty"`
URLTemplate string `yaml:"url_template,omitempty"`
Persist []string `yaml:"persist,omitempty"`
SkipUpload string `yaml:"skip_upload,omitempty"`
PreInstall []string `yaml:"pre_install,omitempty"`
PostInstall []string `yaml:"post_install,omitempty"`
}
Scoop contains the scoop.sh section.
type Sign ¶
type Sign struct {
ID string `yaml:"id,omitempty"`
Cmd string `yaml:"cmd,omitempty"`
Args []string `yaml:"args,omitempty"`
Signature string `yaml:"signature,omitempty"`
Artifacts string `yaml:"artifacts,omitempty"`
IDs []string `yaml:"ids,omitempty"`
Stdin *string `yaml:"stdin,omitempty"`
StdinFile string `yaml:"stdin_file,omitempty"`
}
Sign config.
type Snapcraft ¶
type Snapcraft struct {
NameTemplate string `yaml:"name_template,omitempty"`
Replacements map[string]string `yaml:",omitempty"`
Publish bool `yaml:",omitempty"`
ID string `yaml:",omitempty"`
Builds []string `yaml:",omitempty"`
Name string `yaml:",omitempty"`
Summary string `yaml:",omitempty"`
Description string `yaml:",omitempty"`
Base string `yaml:",omitempty"`
License string `yaml:",omitempty"`
Grade string `yaml:",omitempty"`
Confinement string `yaml:",omitempty"`
Apps map[string]SnapcraftAppMetadata `yaml:",omitempty"`
Plugs map[string]interface{} `yaml:",omitempty"`
Files []SnapcraftExtraFiles `yaml:"extra_files,omitempty"`
}
Snapcraft config.
type SnapcraftAppMetadata ¶
type SnapcraftAppMetadata struct {
Plugs []string
Daemon string
Args string
Completer string `yaml:",omitempty"`
Command string `yaml:"command"`
RestartCondition string `yaml:"restart_condition,omitempty"`
}
SnapcraftAppMetadata for the binaries that will be in the snap package.
type SnapcraftExtraFiles ¶ added in v0.160.0
type SnapcraftExtraFiles struct {
Source string `yaml:"source"`
Destination string `yaml:"destination,omitempty"`
Mode uint32 `yaml:"mode,omitempty"`
}
SnapcraftExtraFiles config.
type Snapshot ¶
type Snapshot struct {
NameTemplate string `yaml:"name_template,omitempty"`
}
Snapshot config.
type Source ¶ added in v0.160.0
type Source struct {
NameTemplate string `yaml:"name_template,omitempty"`
Format string `yaml:",omitempty"`
Enabled bool `yaml:",omitempty"`
}
Source configuration.
type StringArray ¶
type StringArray []string
StringArray is a wrapper for an array of strings.
func (*StringArray) UnmarshalYAML ¶
func (a *StringArray) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML is a custom unmarshaler that wraps strings in arrays.
type Upload ¶ added in v0.160.0
type Upload struct {
Name string `yaml:",omitempty"`
IDs []string `yaml:"ids,omitempty"`
Target string `yaml:",omitempty"`
Username string `yaml:",omitempty"`
Mode string `yaml:",omitempty"`
Method string `yaml:",omitempty"`
ChecksumHeader string `yaml:"checksum_header,omitempty"`
TrustedCerts string `yaml:"trusted_certificates,omitempty"`
Checksum bool `yaml:",omitempty"`
Signature bool `yaml:",omitempty"`
CustomArtifactName bool `yaml:"custom_artifact_name,omitempty"`
}
Upload configuration.