id = "goreleaser" name = "GoReleaser" homepage = "https://goreleaser.com" description = "Release engineering, simplified." # The apple-touch-icon from the project's homepage. icon = "https://goreleaser.com/apple-touch-icon.png" executables = ["goreleaser"] [dotfiles] # GoReleaser's configuration is the project's own `.goreleaser.yaml`. The six # names `loadConfigCheck` looks for in cmd/config.go — including # `.config/goreleaser.yml` — are all relative to the working directory, not to # the home directory, so none of them belong here. What lands in the user's # config directory is only the release tokens. paths = [] exclude = [] # Three token files, one per forge. internal/pipe/env/env.go sets them as the # defaults when the config names no `env_files`: # env.GitHubToken = "~/.config/goreleaser/github_token" # env.GitLabToken = "~/.config/goreleaser/gitlab_token" # env.GiteaToken = "~/.config/goreleaser/gitea_token" # Each file holds the raw token and nothing else — `loadEnv` reads the first # line and hands it straight to the forge client. # https://github.com/goreleaser/goreleaser/blob/main/internal/pipe/env/env.go # # The path is expanded with mitchellh/go-homedir, so `~` is the user profile on # Windows too and there is no second spelling. secret = [ "~/.config/goreleaser/github_token", "~/.config/goreleaser/gitlab_token", "~/.config/goreleaser/gitea_token", ] [commands] format = 1 label = "GoReleaser" description = "Build, release or check the current Go project. Uses the short command names b, r and c. Init, healthcheck and schema are left out." quality = "ai-draft" base = "fig:goreleaser" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/goreleaser.ts" license = "MIT" [[commands.subcommand]] path = ["b"] label = "Build" description = "Build the current project (goreleaser build)." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/goreleaser.ts" license = "MIT" [[commands.subcommand.field]] id = "clean" label = "Clean dist" type = "boolean" option = ["--clean"] sources = ["fig"] [[commands.subcommand.field]] id = "config" label = "Config file" description = "Defaults to .goreleaser.yaml." type = "path" option = ["--config", "-f"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "snapshot" label = "Snapshot" description = "Unversioned snapshot, skipping validations." type = "boolean" option = ["--snapshot"] sources = ["fig"] [[commands.subcommand.field]] id = "parallelism" label = "Parallelism" type = "integer" option = ["--parallelism", "-p"] sources = ["fig"] [[commands.subcommand.field]] id = "timeout" label = "Timeout" description = "For example 30m." type = "string" option = ["--timeout"] sources = ["fig"] [[commands.subcommand.field]] id = "single_target" label = "Current platform only" type = "boolean" option = ["--single-target"] sources = ["fig"] [[commands.subcommand.field]] id = "output" label = "Copy binary to" description = "Only with --single-target." type = "path" option = ["--output", "-o"] path = { kind = "file", role = "output" } effect = "overwrite" sources = ["fig"] [[commands.subcommand.field]] id = "skip_validate" label = "Skip validation" type = "boolean" option = ["--skip-validate"] sources = ["fig"] [[commands.subcommand.task]] id = "snapshot" label = "Local snapshot" fields = ["clean", "snapshot", "single_target", "config"] required = [] set = { clean = [true], snapshot = [true], single_target = [true] } [[commands.subcommand.task]] id = "all" label = "Build all targets" fields = ["clean", "config", "parallelism"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["clean", "config", "snapshot", "single_target", "output"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["timeout", "skip_validate", "parallelism"] [[commands.subcommand]] path = ["r"] label = "Release" description = "Release the current project (goreleaser release). Publishes artifacts unless skipped." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/goreleaser.ts" license = "MIT" [[commands.subcommand.field]] id = "clean" label = "Clean dist" type = "boolean" option = ["--clean"] sources = ["fig"] [[commands.subcommand.field]] id = "config" label = "Config file" description = "Defaults to .goreleaser.yaml." type = "path" option = ["--config", "-f"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "snapshot" label = "Snapshot" description = "Unversioned snapshot, skipping validations." type = "boolean" option = ["--snapshot"] sources = ["fig"] [[commands.subcommand.field]] id = "parallelism" label = "Parallelism" type = "integer" option = ["--parallelism", "-p"] sources = ["fig"] [[commands.subcommand.field]] id = "timeout" label = "Timeout" description = "For example 30m." type = "string" option = ["--timeout"] sources = ["fig"] [[commands.subcommand.field]] id = "skip_publish" label = "Skip publishing" type = "boolean" option = ["--skip-publish"] sources = ["fig"] [[commands.subcommand.field]] id = "skip_announce" label = "Skip announcing" type = "boolean" option = ["--skip-announce"] sources = ["fig"] [[commands.subcommand.field]] id = "skip_sign" label = "Skip signing" type = "boolean" option = ["--skip-sign"] sources = ["fig"] [[commands.subcommand.field]] id = "skip_validate" label = "Skip git checks" type = "boolean" option = ["--skip-validate"] sources = ["fig"] [[commands.subcommand.field]] id = "fail_fast" label = "Fail fast" type = "boolean" option = ["--fail-fast"] sources = ["fig"] [[commands.subcommand.field]] id = "auto_snapshot" label = "Snapshot if dirty" type = "boolean" option = ["--auto-snapshot"] sources = ["fig"] [[commands.subcommand.field]] id = "release_notes" label = "Release notes file" type = "path" option = ["--release-notes"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.task]] id = "release" label = "Release" fields = ["clean", "config", "fail_fast"] required = [] [[commands.subcommand.task]] id = "dry" label = "Local dry run" fields = ["clean", "snapshot", "skip_publish", "skip_announce"] required = [] set = { clean = [true], snapshot = [true], skip_publish = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["clean", "config", "snapshot", "skip_publish"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["skip_announce", "skip_sign", "skip_validate", "auto_snapshot", "release_notes", "timeout", "parallelism", "fail_fast"] [[commands.subcommand]] path = ["c"] label = "Check config" description = "Check that the configuration is valid (goreleaser check)." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/goreleaser.ts" license = "MIT" [[commands.subcommand.field]] id = "config" label = "Config file" type = "path" option = ["--config", "-f"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "quiet" label = "Quiet" type = "boolean" option = ["--quiet", "-q"] sources = ["fig"] [[commands.subcommand.task]] id = "check" label = "Check" fields = ["config", "quiet"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["config", "quiet"]