1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
|
package goreleaser
config: {
#latest: bool @tag(latest, type=bool)
version: 2
project_name: "cue"
// Note that gomod.proxy is ignored by `goreleaser release --snapshot`,
// which we use in CI to test the goreleaser config and build,
// as --snapshot is meant for entirely local builds without a git tag.
gomod: proxy: true
// Template based on common settings
builds: [...{
env: *[
"CGO_ENABLED=0",
] | _
ldflags: *[
"-s -w",
] | _
flags: *[
"-trimpath",
] | _
// Note that goreleaser says that id defaults to the binary name, but it
// then complains about, for example, "cue" being duplicate even though
// we use "cue" and "cuepls". Even though we no longer have a "cuepls"
// binary, we leave this comment for posterity's sake.
id: binary
main: string
binary: string
mod_timestamp: *'{{ .CommitTimestamp }}' | _
goos: *[
"darwin",
"linux",
"windows",
] | _
goarch: *[
"amd64",
"arm64",
] | _
}]
builds: [
{main: "./cmd/cue", binary: "cue"},
]
archives: [{
name_template: "{{ .ProjectName }}_{{ .Tag }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}"
files: [
"LICENSE",
"README.md",
"doc/tutorial/**/*",
"doc/ref/spec.md",
]
format_overrides: [{
goos: "windows"
format: "zip"
}]
}]
release: {
disable: false
prerelease: "auto"
// We manually write the release notes, so they need to be added to a release on GitHub.
// We don't want to create the release from scratch without goreleaser,
// since goreleaser takes care of creating and uploading the release archives.
// We also don't want the release to be fully published by goreleaser,
// as otherwise the notification emails go out with the release notes missing.
// For those reasons, let goreleaser create the release, but leaving it as a draft.
draft: true
}
checksum: name_template: "checksums.txt"
snapshot: version_template: "{{ .Tag }}-next"
// As explained above, we write our own release notes.
changelog: disable: true
brews: [{
if !#latest {
skip_upload: true
}
repository: {
owner: "cue-lang"
name: "homebrew-tap"
}
commit_author: {
name: "cueckoo"
email: "noreply@cuelang.org"
}
homepage: "https://cuelang.org"
description: "CUE is an open source data constraint language which aims to simplify tasks involving defining and using data."
test: """
system \"#{bin}/cue version\"
"""
}]
dockers: [{
image_templates: [
"docker.io/cuelang/cue:{{ .Version }}-amd64",
]
dockerfile: "cmd/cue/Dockerfile"
use: "buildx"
build_flag_templates: [
"--platform=linux/amd64",
"--label=org.opencontainers.image.title={{ .ProjectName }}",
"--label=org.opencontainers.image.description={{ .ProjectName }}",
"--label=org.opencontainers.image.url=https://github.com/cue-lang/cue",
"--label=org.opencontainers.image.source=https://github.com/cue-lang/cue",
"--label=org.opencontainers.image.version={{ .Version }}",
"--label=org.opencontainers.image.created={{ time \"2006-01-02T15:04:05Z07:00\" }}",
"--label=org.opencontainers.image.revision={{ .FullCommit }}",
"--label=org.opencontainers.image.licenses=Apache 2.0",
]
}, {
image_templates: [
"docker.io/cuelang/cue:{{ .Version }}-arm64",
]
goarch: "arm64"
dockerfile: "cmd/cue/Dockerfile"
use: "buildx"
build_flag_templates: [
"--platform=linux/arm64",
"--label=org.opencontainers.image.title={{ .ProjectName }}",
"--label=org.opencontainers.image.description={{ .ProjectName }}",
"--label=org.opencontainers.image.url=https://github.com/cue-lang/cue",
"--label=org.opencontainers.image.source=https://github.com/cue-lang/cue",
"--label=org.opencontainers.image.version={{ .Version }}",
"--label=org.opencontainers.image.created={{ time \"2006-01-02T15:04:05Z07:00\" }}",
"--label=org.opencontainers.image.revision={{ .FullCommit }}",
"--label=org.opencontainers.image.licenses=Apache 2.0",
]
}]
docker_manifests: [
{
name_template: "docker.io/cuelang/cue:{{ .Version }}"
image_templates: [
"docker.io/cuelang/cue:{{ .Version }}-amd64",
"docker.io/cuelang/cue:{{ .Version }}-arm64",
]
},
if #latest {
name_template: "docker.io/cuelang/cue:latest"
image_templates: [
"docker.io/cuelang/cue:{{ .Version }}-amd64",
"docker.io/cuelang/cue:{{ .Version }}-arm64",
]
},
]
}
|