config

package
v0.182.0 Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2020 License: MIT Imports: 7 Imported by: 0

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 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 Before

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

Before config.

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

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

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

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

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 Filters

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

Filters config.

type FlagArray

type FlagArray []string

FlagArray is a wrapper for an array of strings.

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:",omitempty"`
	Format string `yaml:",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.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

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

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 Hooks

type Hooks struct {
	Pre  string `yaml:",omitempty"`
	Post string `yaml:",omitempty"`
}

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

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 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:",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.

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.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 Repo

type Repo struct {
	Owner string `yaml:",omitempty"`
	Name  string `yaml:",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.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.

Jump to

Keyboard shortcuts

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