config

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 21, 2021 License: MIT Imports: 8 Imported by: 36

Documentation

Overview

Package config contains the model and loader of the goreleaser configuration file.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Announce added in v0.166.0

type Announce struct {
	Skip       string     `yaml:"skip,omitempty"`
	Twitter    Twitter    `yaml:"twitter,omitempty"`
	Reddit     Reddit     `yaml:"reddit,omitempty"`
	Slack      Slack      `yaml:"slack,omitempty"`
	Discord    Discord    `yaml:"discord,omitempty"`
	Teams      Teams      `yaml:"teams,omitempty"`
	SMTP       SMTP       `yaml:"smtp,omitempty"`
	Mattermost Mattermost `yaml:"mattermost,omitempty"`
	LinkedIn   LinkedIn   `yaml:"linkedin,omitempty"`
	Telegram   Telegram   `yaml:"telegram,omitempty"`
}

type Archive

type Archive struct {
	ID                        string            `yaml:"id,omitempty"`
	Builds                    []string          `yaml:"builds,omitempty"`
	NameTemplate              string            `yaml:"name_template,omitempty"`
	Replacements              map[string]string `yaml:"replacements,omitempty"`
	Format                    string            `yaml:"format,omitempty"`
	FormatOverrides           []FormatOverride  `yaml:"format_overrides,omitempty"`
	WrapInDirectory           string            `yaml:"wrap_in_directory,omitempty"`
	Files                     []File            `yaml:"files,omitempty"`
	AllowDifferentBinaryCount bool              `yaml:"allow_different_binary_count,omitempty"`
}

Archive config used for the archive.

type Before

type Before struct {
	Hooks []string `yaml:"hooks,omitempty"`
}

Before config.

type Blob added in v0.109.0

type Blob struct {
	Bucket     string      `yaml:"bucket,omitempty"`
	Provider   string      `yaml:"provider,omitempty"`
	Region     string      `yaml:"region,omitempty"`
	DisableSSL bool        `yaml:"disableSSL,omitempty"` // nolint:tagliatelle // TODO(caarlos0): rename to disable_ssl
	Folder     string      `yaml:"folder,omitempty"`
	KMSKey     string      `yaml:"kmskey,omitempty"`
	IDs        []string    `yaml:"ids,omitempty"`
	Endpoint   string      `yaml:"endpoint,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:"id,omitempty"`
	Goos            []string        `yaml:"goos,omitempty"`
	Goarch          []string        `yaml:"goarch,omitempty"`
	Goarm           []string        `yaml:"goarm,omitempty"`
	Gomips          []string        `yaml:"gomips,omitempty"`
	Targets         []string        `yaml:"targets,omitempty"`
	Ignore          []IgnoredBuild  `yaml:"ignore,omitempty"`
	Dir             string          `yaml:"dir,omitempty"`
	Main            string          `yaml:"main,omitempty"`
	Ldflags         StringArray     `yaml:"ldflags,omitempty"`
	Tags            FlagArray       `yaml:"tags,omitempty"`
	Flags           FlagArray       `yaml:"flags,omitempty"`
	Binary          string          `yaml:"binary,omitempty"`
	Hooks           BuildHookConfig `yaml:"hooks,omitempty"`
	Env             []string        `yaml:"env,omitempty"`
	Builder         string          `yaml:"builder,omitempty"`
	Asmflags        StringArray     `yaml:"asmflags,omitempty"`
	Gcflags         StringArray     `yaml:"gcflags,omitempty"`
	ModTimestamp    string          `yaml:"mod_timestamp,omitempty"`
	Skip            bool            `yaml:"skip,omitempty"`
	GoBinary        string          `yaml:"gobinary,omitempty"`
	NoUniqueDistDir bool            `yaml:"no_unique_dist_dir,omitempty"`
	UnproxiedMain   string          `yaml:"-"` // used by gomod.proxy
	UnproxiedDir    string          `yaml:"-"` // used by gomod.proxy
}

Build contains the build configuration section.

type BuildHookConfig added in v0.184.0

type BuildHookConfig struct {
	Pre  Hooks `yaml:"pre,omitempty"`
	Post Hooks `yaml:"post,omitempty"`
}

type BuildHooks added in v0.132.0

type BuildHooks struct {
	Pre  string `yaml:"pre,omitempty"`
	Post string `yaml:"post,omitempty"`
}

BuildHooks define actions to run before and/or after something.

type ChangeLogGroup added in v1.1.0

type ChangeLogGroup struct {
	Title  string `yaml:"title,omitempty"`
	Regexp string `yaml:"regexp,omitempty"`
	Order  int    `yaml:"order,omitempty"`
}

ChangeLogGroup holds the grouping criteria for the changelog.

type Changelog

type Changelog struct {
	Filters Filters          `yaml:"filters,omitempty"`
	Sort    string           `yaml:"sort,omitempty"`
	Skip    bool             `yaml:"skip,omitempty"` // TODO(caarlos0): rename to Disable to match other pipes
	Use     string           `yaml:"use,omitempty" jsonschema:"enum=git,enum=github,enum=github-native,enum=gitlab,default=git"`
	Groups  []ChangeLogGroup `yaml:"groups,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"`
	ExtraFiles   []ExtraFile `yaml:"extra_files,omitempty"`
}

Checksum config.

type CommitAuthor

type CommitAuthor struct {
	Name  string `yaml:"name,omitempty"`
	Email string `yaml:"email,omitempty"`
}

CommitAuthor is the author of a Git commit.

type Discord added in v0.179.0

type Discord struct {
	Enabled         bool   `yaml:"enabled,omitempty"`
	MessageTemplate string `yaml:"message_template,omitempty"`
	Author          string `yaml:"author,omitempty"`
	Color           string `yaml:"color,omitempty"`
	IconURL         string `yaml:"icon_url,omitempty"`
}

type Docker

type Docker struct {
	ID                 string   `yaml:"id,omitempty"`
	IDs                []string `yaml:"ids,omitempty"`
	Goos               string   `yaml:"goos,omitempty"`
	Goarch             string   `yaml:"goarch,omitempty"`
	Goarm              string   `yaml:"goarm,omitempty"`
	Dockerfile         string   `yaml:"dockerfile,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"`
	PushFlags          []string `yaml:"push_flags,omitempty"`
	Buildx             bool     `yaml:"use_buildx,omitempty"` // deprecated: use Use instead
	Use                string   `yaml:"use,omitempty"`
}

Docker image config.

type DockerManifest added in v0.148.0

type DockerManifest struct {
	ID             string   `yaml:"id,omitempty"`
	NameTemplate   string   `yaml:"name_template,omitempty"`
	SkipPush       string   `yaml:"skip_push,omitempty"`
	ImageTemplates []string `yaml:"image_templates,omitempty"`
	CreateFlags    []string `yaml:"create_flags,omitempty"`
	PushFlags      []string `yaml:"push_flags,omitempty"`
	Use            string   `yaml:"use,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.127.0

type ExtraFile struct {
	Glob         string `yaml:"glob,omitempty"`
	NameTemplate string `yaml:"name_template,omitempty"`
}

ExtraFile on a release.

type File added in v0.174.0

type File struct {
	Source      string   `yaml:"src,omitempty"`
	Destination string   `yaml:"dst,omitempty"`
	StripParent bool     `yaml:"strip_parent,omitempty"`
	Info        FileInfo `yaml:"info,omitempty"`
}

File is a file inside an archive.

func (File) JSONSchemaType added in v0.184.0

func (f File) JSONSchemaType() *jsonschema.Type

func (*File) UnmarshalYAML added in v0.174.0

func (f *File) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML is a custom unmarshaler that wraps strings in arrays.

type FileInfo added in v0.174.0

type FileInfo struct {
	Owner string      `yaml:"owner,omitempty"`
	Group string      `yaml:"group"`
	Mode  os.FileMode `yaml:"mode,omitempty"`
	MTime time.Time   `yaml:"mtime,omitempty"`
}

FileInfo is the file info of a file.

type Filters

type Filters struct {
	Exclude []string `yaml:"exclude,omitempty"`
}

Filters config.

type FlagArray

type FlagArray []string

FlagArray is a wrapper for an array of strings.

func (FlagArray) JSONSchemaType added in v0.184.0

func (a FlagArray) JSONSchemaType() *jsonschema.Type

func (*FlagArray) UnmarshalYAML

func (a *FlagArray) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML is a custom unmarshaler that wraps strings in arrays.

type FormatOverride

type FormatOverride struct {
	Goos   string `yaml:"goos,omitempty"`
	Format string `yaml:"format,omitempty"`
}

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.112.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.117.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 GoFish added in v0.181.0

type GoFish struct {
	Name                  string       `yaml:"name,omitempty"`
	Rig                   RepoRef      `yaml:"rig,omitempty"`
	CommitAuthor          CommitAuthor `yaml:"commit_author,omitempty"`
	CommitMessageTemplate string       `yaml:"commit_msg_template,omitempty"`
	Description           string       `yaml:"description,omitempty"`
	Homepage              string       `yaml:"homepage,omitempty"`
	License               string       `yaml:"license,omitempty"`
	SkipUpload            string       `yaml:"skip_upload,omitempty"`
	URLTemplate           string       `yaml:"url_template,omitempty"`
	IDs                   []string     `yaml:"ids,omitempty"`
	Goarm                 string       `yaml:"goarm,omitempty"`
}

GoFish contains the gofish section.

type GoMod added in v0.162.0

type GoMod struct {
	Proxy    bool     `yaml:"proxy,omitempty"`
	Env      []string `yaml:"env,omitempty"`
	GoBinary string   `yaml:"gobinary,omitempty"`
}

type Homebrew

type Homebrew struct {
	Name                  string               `yaml:"name,omitempty"`
	Tap                   RepoRef              `yaml:"tap,omitempty"`
	CommitAuthor          CommitAuthor         `yaml:"commit_author,omitempty"`
	CommitMessageTemplate string               `yaml:"commit_msg_template,omitempty"`
	Folder                string               `yaml:"folder,omitempty"`
	Caveats               string               `yaml:"caveats,omitempty"`
	Plist                 string               `yaml:"plist,omitempty"`
	Install               string               `yaml:"install,omitempty"`
	PostInstall           string               `yaml:"post_install,omitempty"`
	Dependencies          []HomebrewDependency `yaml:"dependencies,omitempty"`
	Test                  string               `yaml:"test,omitempty"`
	Conflicts             []string             `yaml:"conflicts,omitempty"`
	Description           string               `yaml:"description,omitempty"`
	Homepage              string               `yaml:"homepage,omitempty"`
	License               string               `yaml:"license,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"`
}

Homebrew contains the brew section.

type HomebrewDependency added in v0.137.0

type HomebrewDependency struct {
	Name string `yaml:"name,omitempty"`
	Type string `yaml:"type,omitempty"`
}

HomebrewDependency represents Homebrew dependency.

func (HomebrewDependency) JSONSchemaType added in v0.184.0

func (a HomebrewDependency) JSONSchemaType() *jsonschema.Type

func (*HomebrewDependency) UnmarshalYAML added in v0.137.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 Hook added in v0.184.0

type Hook struct {
	Dir string   `yaml:"dir,omitempty"`
	Cmd string   `yaml:"cmd,omitempty"`
	Env []string `yaml:"env,omitempty"`
}

func (Hook) JSONSchemaType added in v0.184.0

func (bh Hook) JSONSchemaType() *jsonschema.Type

func (*Hook) UnmarshalYAML added in v0.184.0

func (bh *Hook) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML is a custom unmarshaler that allows simplified declarations of commands as strings.

type Hooks

type Hooks []Hook

func (Hooks) JSONSchemaType added in v0.184.0

func (bhc Hooks) JSONSchemaType() *jsonschema.Type

func (*Hooks) UnmarshalYAML added in v0.184.0

func (bhc *Hooks) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML is a custom unmarshaler that allows simplified declaration of single command.

type IgnoredBuild

type IgnoredBuild struct {
	Goos   string `yaml:"goos,omitempty"`
	Goarch string `yaml:"goarch,omitempty"`
	Goarm  string `yaml:"goarm,omitempty"`
	Gomips string `yaml:"gomips,omitempty"`
}

IgnoredBuild represents a build ignored by the user.

type Krew added in v1.0.0

type Krew struct {
	IDs                   []string     `yaml:"ids,omitempty"`
	Name                  string       `yaml:"name,omitempty"`
	Index                 RepoRef      `yaml:"index,omitempty"`
	CommitAuthor          CommitAuthor `yaml:"commit_author,omitempty"`
	CommitMessageTemplate string       `yaml:"commit_msg_template,omitempty"`
	Caveats               string       `yaml:"caveats,omitempty"`
	ShortDescription      string       `yaml:"short_description,omitempty"`
	Description           string       `yaml:"description,omitempty"`
	Homepage              string       `yaml:"homepage,omitempty"`
	URLTemplate           string       `yaml:"url_template,omitempty"`
	Goarm                 string       `yaml:"goarm,omitempty"`
	SkipUpload            string       `yaml:"skip_upload,omitempty"`
}

Krew contains the krew section.

type LinkedIn added in v1.0.0

type LinkedIn struct {
	Enabled         bool   `yaml:"enabled,omitempty"`
	MessageTemplate string `yaml:"message_template,omitempty"`
}

type Mattermost added in v0.181.0

type Mattermost struct {
	Enabled         bool   `yaml:"enabled,omitempty"`
	MessageTemplate string `yaml:"message_template,omitempty"`
	TitleTemplate   string `yaml:"title_template,omitempty"`
	Color           string `yaml:"color,omitempty"`
	Channel         string `yaml:"channel,omitempty"`
	Username        string `yaml:"username,omitempty"`
	IconEmoji       string `yaml:"icon_emoji,omitempty"`
	IconURL         string `yaml:"icon_url,omitempty"`
}

type Milestone added in v0.140.0

type Milestone struct {
	Repo         Repo   `yaml:"repo,omitempty"`
	Close        bool   `yaml:"close,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:"id,omitempty"`
	Builds      []string `yaml:"builds,omitempty"`
	Formats     []string `yaml:"formats,omitempty"`
	Section     string   `yaml:"section,omitempty"`
	Priority    string   `yaml:"priority,omitempty"`
	Vendor      string   `yaml:"vendor,omitempty"`
	Homepage    string   `yaml:"homepage,omitempty"`
	Maintainer  string   `yaml:"maintainer,omitempty"`
	Description string   `yaml:"description,omitempty"`
	License     string   `yaml:"license,omitempty"`
	Bindir      string   `yaml:"bindir,omitempty"`
	Meta        bool     `yaml:"meta,omitempty"` // make package without binaries - only deps
}

NFPM config.

type NFPMAPK added in v0.147.0

type NFPMAPK struct {
	Scripts   NFPMAPKScripts   `yaml:"scripts,omitempty"`
	Signature NFPMAPKSignature `yaml:"signature,omitempty"`
}

NFPMAPK is custom config only available on apk packages.

type NFPMAPKScripts added in v0.171.0

type NFPMAPKScripts struct {
	PreUpgrade  string `yaml:"preupgrade,omitempty"`
	PostUpgrade string `yaml:"postupgrade,omitempty"`
}

type NFPMAPKSignature added in v0.147.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.147.0

type NFPMDeb struct {
	Scripts   NFPMDebScripts   `yaml:"scripts,omitempty"`
	Triggers  NFPMDebTriggers  `yaml:"triggers,omitempty"`
	Breaks    []string         `yaml:"breaks,omitempty"`
	Signature NFPMDebSignature `yaml:"signature,omitempty"`
}

NFPMDeb is custom configs that are only available on deb packages.

type NFPMDebScripts added in v0.147.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.147.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.147.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"`
	Prerelease       string            `yaml:"prerelease,omitempty"`
	VersionMetadata  string            `yaml:"version_metadata,omitempty"`
	Replacements     map[string]string `yaml:"replacements,omitempty"`
	Dependencies     []string          `yaml:"dependencies,omitempty"`
	Recommends       []string          `yaml:"recommends,omitempty"`
	Suggests         []string          `yaml:"suggests,omitempty"`
	Conflicts        []string          `yaml:"conflicts,omitempty"`
	Replaces         []string          `yaml:"replaces,omitempty"`
	EmptyFolders     []string          `yaml:"empty_folders,omitempty"` // deprecated
	Contents         files.Contents    `yaml:"contents,omitempty"`
	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.147.0

type NFPMRPM struct {
	Summary     string           `yaml:"summary,omitempty"`
	Group       string           `yaml:"group,omitempty"`
	Compression string           `yaml:"compression,omitempty"`
	Signature   NFPMRPMSignature `yaml:"signature,omitempty"`
	Scripts     NFPMRPMScripts   `yaml:"scripts,omitempty"`
}

NFPMRPM is custom configs that are only available on RPM packages.

type NFPMRPMScripts added in v0.165.0

type NFPMRPMScripts struct {
	PreTrans  string `yaml:"pretrans,omitempty"`
	PostTrans string `yaml:"posttrans,omitempty"`
}

NFPMRPMScripts represents scripts only available on RPM packages.

type NFPMRPMSignature added in v0.147.0

type NFPMRPMSignature struct {
	// PGP secret key, can be ASCII-armored
	KeyFile       string `yaml:"key_file,omitempty"`
	KeyPassphrase string `yaml:"-"` // populated from environment variable
}

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:"env,omitempty"`
	Release         Release          `yaml:"release,omitempty"`
	Milestones      []Milestone      `yaml:"milestones,omitempty"`
	Brews           []Homebrew       `yaml:"brews,omitempty"`
	Rigs            []GoFish         `yaml:"rigs,omitempty"`
	Krews           []Krew           `yaml:"krews,omitempty"`
	Scoop           Scoop            `yaml:"scoop,omitempty"`
	Builds          []Build          `yaml:"builds,omitempty"`
	Archives        []Archive        `yaml:"archives,omitempty"`
	NFPMs           []NFPM           `yaml:"nfpms,omitempty"`
	Snapcrafts      []Snapcraft      `yaml:"snapcrafts,omitempty"`
	Snapshot        Snapshot         `yaml:"snapshot,omitempty"`
	Checksum        Checksum         `yaml:"checksum,omitempty"`
	Dockers         []Docker         `yaml:"dockers,omitempty"`
	DockerManifests []DockerManifest `yaml:"docker_manifests,omitempty"`
	Artifactories   []Upload         `yaml:"artifactories,omitempty"`
	Uploads         []Upload         `yaml:"uploads,omitempty"`
	Blobs           []Blob           `yaml:"blobs,omitempty"`
	Publishers      []Publisher      `yaml:"publishers,omitempty"`
	Changelog       Changelog        `yaml:"changelog,omitempty"`
	Dist            string           `yaml:"dist,omitempty"`
	Signs           []Sign           `yaml:"signs,omitempty"`
	DockerSigns     []Sign           `yaml:"docker_signs,omitempty"`
	EnvFiles        EnvFiles         `yaml:"env_files,omitempty"`
	Before          Before           `yaml:"before,omitempty"`
	Source          Source           `yaml:"source,omitempty"`
	GoMod           GoMod            `yaml:"gomod,omitempty"`
	Announce        Announce         `yaml:"announce,omitempty"`
	SBOMs           []SBOM           `yaml:"sboms,omitempty"`

	UniversalBinaries []UniversalBinary `yaml:"universal_binaries,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.

func Load

func Load(file string) (config Project, err error)

Load config file.

func LoadReader

func LoadReader(fd io.Reader) (config Project, err error)

LoadReader config via io.Reader.

type Publisher added in v0.134.0

type Publisher struct {
	Name      string   `yaml:"name,omitempty"`
	IDs       []string `yaml:"ids,omitempty"`
	Checksum  bool     `yaml:"checksum,omitempty"`
	Signature bool     `yaml:"signature,omitempty"`
	Dir       string   `yaml:"dir,omitempty"`
	Cmd       string   `yaml:"cmd,omitempty"`
	Env       []string `yaml:"env,omitempty"`
}

Publisher configuration.

type Reddit added in v0.177.0

type Reddit struct {
	Enabled       bool   `yaml:"enabled,omitempty"`
	ApplicationID string `yaml:"application_id,omitempty"`
	Username      string `yaml:"username,omitempty"`
	TitleTemplate string `yaml:"title_template,omitempty"`
	URLTemplate   string `yaml:"url_template,omitempty"`
	Sub           string `yaml:"sub,omitempty"`
}

type Release

type Release struct {
	GitHub                 Repo        `yaml:"github,omitempty"`
	GitLab                 Repo        `yaml:"gitlab,omitempty"`
	Gitea                  Repo        `yaml:"gitea,omitempty"`
	Draft                  bool        `yaml:"draft,omitempty"`
	Disable                bool        `yaml:"disable,omitempty"`
	Prerelease             string      `yaml:"prerelease,omitempty"`
	NameTemplate           string      `yaml:"name_template,omitempty"`
	IDs                    []string    `yaml:"ids,omitempty"`
	ExtraFiles             []ExtraFile `yaml:"extra_files,omitempty"`
	DiscussionCategoryName string      `yaml:"discussion_category_name,omitempty"`
	Header                 string      `yaml:"header,omitempty"`
	Footer                 string      `yaml:"footer,omitempty"`

	ReleaseNotesMode ReleaseNotesMode `yaml:"mode,omitempty" jsonschema:"enum=keep-existing,enum=append,enum=prepend,enum=replace,default=keep-existing"`
}

Release config used for the GitHub/GitLab release.

type ReleaseNotesMode added in v1.1.0

type ReleaseNotesMode string
const (
	ReleaseNotesModeKeepExisting ReleaseNotesMode = "keep-existing"
	ReleaseNotesModeAppend       ReleaseNotesMode = "append"
	ReleaseNotesModeReplace      ReleaseNotesMode = "replace"
	ReleaseNotesModePrepend      ReleaseNotesMode = "prepend"
)

type Repo

type Repo struct {
	Owner string `yaml:"owner,omitempty"`
	Name  string `yaml:"name,omitempty"`
}

Repo represents any kind of repo (github, gitlab, etc). to upload releases into.

func (Repo) String

func (r Repo) String() string

String of the repo, e.g. owner/name.

type RepoRef added in v0.139.0

type RepoRef struct {
	Owner  string `yaml:"owner,omitempty"`
	Name   string `yaml:"name,omitempty"`
	Token  string `yaml:"token,omitempty"`
	Branch string `yaml:"branch,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 SBOM added in v1.2.0

type SBOM struct {
	ID        string   `yaml:"id,omitempty"`
	Cmd       string   `yaml:"cmd,omitempty"`
	Env       []string `yaml:"env,omitempty"`
	Args      []string `yaml:"args,omitempty"`
	Documents []string `yaml:"documents,omitempty"`
	Artifacts string   `yaml:"artifacts,omitempty"`
	IDs       []string `yaml:"ids,omitempty"`
}

SBOM config.

type SMTP added in v0.180.0

type SMTP struct {
	Enabled            bool     `yaml:"enabled,omitempty"`
	Host               string   `yaml:"host,omitempty"`
	Port               int      `yaml:"port,omitempty"`
	Username           string   `yaml:"username,omitempty"`
	From               string   `yaml:"from,omitempty"`
	To                 []string `yaml:"to,omitempty"`
	SubjectTemplate    string   `yaml:"subject_template,omitempty"`
	BodyTemplate       string   `yaml:"body_template,omitempty"`
	InsecureSkipVerify bool     `yaml:"insecure_skip_verify,omitempty"`
}

type Scoop

type Scoop struct {
	Name                  string       `yaml:"name,omitempty"`
	Bucket                RepoRef      `yaml:"bucket,omitempty"`
	Folder                string       `yaml:"folder,omitempty"`
	CommitAuthor          CommitAuthor `yaml:"commit_author,omitempty"`
	CommitMessageTemplate string       `yaml:"commit_msg_template,omitempty"`
	Homepage              string       `yaml:"homepage,omitempty"`
	Description           string       `yaml:"description,omitempty"`
	License               string       `yaml:"license,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"`
	Env         []string `yaml:"env,omitempty"`
	Certificate string   `yaml:"certificate,omitempty"`
	Output      bool     `yaml:"output,omitempty"`
}

Sign config.

type Slack added in v0.177.0

type Slack struct {
	Enabled         bool   `yaml:"enabled,omitempty"`
	MessageTemplate string `yaml:"message_template,omitempty"`
	Channel         string `yaml:"channel,omitempty"`
	Username        string `yaml:"username,omitempty"`
	IconEmoji       string `yaml:"icon_emoji,omitempty"`
	IconURL         string `yaml:"icon_url,omitempty"`
}

type Snapcraft

type Snapcraft struct {
	NameTemplate string            `yaml:"name_template,omitempty"`
	Replacements map[string]string `yaml:"replacements,omitempty"`
	Publish      bool              `yaml:"publish,omitempty"`

	ID               string                             `yaml:"id,omitempty"`
	Builds           []string                           `yaml:"builds,omitempty"`
	Name             string                             `yaml:"name,omitempty"`
	Summary          string                             `yaml:"summary,omitempty"`
	Description      string                             `yaml:"description,omitempty"`
	Base             string                             `yaml:"base,omitempty"`
	License          string                             `yaml:"license,omitempty"`
	Grade            string                             `yaml:"grade,omitempty"`
	ChannelTemplates []string                           `yaml:"channel_templates,omitempty"`
	Confinement      string                             `yaml:"confinement,omitempty"`
	Layout           map[string]SnapcraftLayoutMetadata `yaml:"layout,omitempty"`
	Apps             map[string]SnapcraftAppMetadata    `yaml:"apps,omitempty"`
	Plugs            map[string]interface{}             `yaml:"plugs,omitempty"`

	Files []SnapcraftExtraFiles `yaml:"extra_files,omitempty"`
}

Snapcraft config.

type SnapcraftAppMetadata

type SnapcraftAppMetadata struct {
	Plugs            []string
	Daemon           string
	Args             string
	Completer        string `yaml:"completer,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.138.0

type SnapcraftExtraFiles struct {
	Source      string `yaml:"source"`
	Destination string `yaml:"destination,omitempty"`
	Mode        uint32 `yaml:"mode,omitempty"`
}

SnapcraftExtraFiles config.

type SnapcraftLayoutMetadata added in v0.160.0

type SnapcraftLayoutMetadata struct {
	Symlink  string `yaml:"symlink,omitempty"`
	Bind     string `yaml:"bind,omitempty"`
	BindFile string `yaml:"bind_file,omitempty"`
	Type     string `yaml:"type,omitempty"`
}

type Snapshot

type Snapshot struct {
	NameTemplate string `yaml:"name_template,omitempty"`
}

Snapshot config.

type Source added in v0.132.0

type Source struct {
	NameTemplate   string `yaml:"name_template,omitempty"`
	Format         string `yaml:"format,omitempty"`
	Enabled        bool   `yaml:"enabled,omitempty"`
	PrefixTemplate string `yaml:"prefix_template,omitempty"`
}

Source configuration.

type StringArray

type StringArray []string

StringArray is a wrapper for an array of strings.

func (StringArray) JSONSchemaType added in v0.184.0

func (a StringArray) JSONSchemaType() *jsonschema.Type

func (*StringArray) UnmarshalYAML

func (a *StringArray) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML is a custom unmarshaler that wraps strings in arrays.

type Teams added in v0.179.0

type Teams struct {
	Enabled         bool   `yaml:"enabled,omitempty"`
	TitleTemplate   string `yaml:"title_template,omitempty"`
	MessageTemplate string `yaml:"message_template,omitempty"`
	Color           string `yaml:"color,omitempty"`
	IconURL         string `yaml:"icon_url,omitempty"`
}

type Telegram added in v0.182.0

type Telegram struct {
	Enabled         bool   `yaml:"enabled,omitempty"`
	MessageTemplate string `yaml:"message_template,omitempty"`
	ChatID          int64  `yaml:"chat_id,omitempty"`
}

type Twitter added in v0.166.0

type Twitter struct {
	Enabled         bool   `yaml:"enabled,omitempty"`
	MessageTemplate string `yaml:"message_template,omitempty"`
}

type UniversalBinary added in v0.182.0

type UniversalBinary struct {
	ID           string          `yaml:"id,omitempty"`
	NameTemplate string          `yaml:"name_template,omitempty"`
	Replace      bool            `yaml:"replace,omitempty"`
	Hooks        BuildHookConfig `yaml:"hooks,omitempty"`
}

UniversalBinary setups macos universal binaries.

type Upload added in v0.123.0

type Upload struct {
	Name               string            `yaml:"name,omitempty"`
	IDs                []string          `yaml:"ids,omitempty"`
	Target             string            `yaml:"target,omitempty"`
	Username           string            `yaml:"username,omitempty"`
	Mode               string            `yaml:"mode,omitempty"`
	Method             string            `yaml:"method,omitempty"`
	ChecksumHeader     string            `yaml:"checksum_header,omitempty"`
	TrustedCerts       string            `yaml:"trusted_certificates,omitempty"`
	Checksum           bool              `yaml:"checksum,omitempty"`
	Signature          bool              `yaml:"signature,omitempty"`
	CustomArtifactName bool              `yaml:"custom_artifact_name,omitempty"`
	CustomHeaders      map[string]string `yaml:"custom_headers,omitempty"`
}

Upload configuration.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL