release: Add withdeploy deb extended archives

Also refactor and get the config up to date for new version of Hugoreleaser.

Closes #13166
This commit is contained in:
Bjørn Erik Pedersen 2024-12-22 16:55:52 +01:00 committed by GitHub
parent 6c583e3227
commit 48a7aee961
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 274 additions and 309 deletions

View file

@ -4,7 +4,7 @@ parameters:
defaults: &defaults
resource_class: large
docker:
- image: bepsays/ci-hugoreleaser:1.22300.20400
- image: bepsays/ci-hugoreleaser:1.22301.20401
environment: &buildenv
GOMODCACHE: /root/project/gomodcache
version: 2
@ -58,7 +58,7 @@ jobs:
environment:
<<: [*buildenv]
docker:
- image: bepsays/ci-hugoreleaser-linux-arm64:1.22300.20400
- image: bepsays/ci-hugoreleaser-linux-arm64:1.22301.20401
steps:
- *restore-cache
- &attach-workspace

View file

@ -1,307 +0,0 @@
project = "hugo"
# In Hugo v0.103.0 we removed the archive name replacements (e.g. amd64 => 64bit).
# Using standard GOOS/GOARCH values makes it easier for scripts out there,
# but to prevent breakage in Netlify etc. that has adopted to the old names,
# we create aliases for the most common variants.
# According to download numbers from v0.101.0, these are by a good margin the two most popular:
# hugo_extended_0.101.0_Linux-64bit.tar.gz Downloaded 129,016 times
# hugo_0.101.0_Linux-64bit.tar.gz Downloaded 87,846 times
# This replacement will create 2 extra alias archives.
archive_alias_replacements = { "linux-amd64.tar.gz" = "Linux-64bit.tar.gz" }
[go_settings]
go_proxy = "https://proxy.golang.org"
go_exe = "go"
[build_settings]
binary = "hugo"
flags = ["-buildmode", "exe"]
env = ["CGO_ENABLED=0"]
ldflags = "-s -w -X github.com/gohugoio/hugo/common/hugo.vendorInfo=gohugoio"
[archive_settings]
name_template = "{{ .Project }}_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
extra_files = [
{ source_path = "README.md", target_path = "README.md" },
{ source_path = "LICENSE", target_path = "LICENSE" },
]
[archive_settings.type]
format = "tar.gz"
extension = ".tar.gz"
[release_settings]
name = "${HUGORELEASER_TAG}"
type = "github"
repository = "hugo"
repository_owner = "gohugoio"
draft = true
prerelease = false
[release_settings.release_notes_settings]
# Use Hugoreleaser's autogenerated release notes.
generate = true
# Collapse releases with < 10 changes below one title.
short_threshold = 10
short_title = "What's Changed"
groups = [
# Group the changes in the release notes by title.
# You need at least one.
# The groups will be tested in order until a match is found.
# The titles will so be listed in the given order in the release note.
# Any match with ignore=true title will be dropped.
{ regexp = "Merge commit|Squashed|releaser:", ignore = true },
{ title = "Note", regexp = "(note|deprecated)", ordinal = 10 },
{ title = "Bug fixes", regexp = "fix", ordinal = 15 },
{ title = "Dependency Updates", regexp = "deps", ordinal = 30 },
{ title = "Build Setup", regexp = "(snap|release|update to)", ordinal = 40 },
{ title = "Documentation", regexp = "(doc|readme)", ordinal = 40 },
{ title = "Improvements", regexp = ".*", ordinal = 20 },
]
[[builds]]
path = "container1/unix/regular"
[[builds.os]]
goos = "darwin"
[[builds.os.archs]]
goarch = "universal"
[[builds.os]]
goos = "linux"
[[builds.os.archs]]
goarch = "amd64"
[[builds.os.archs]]
goarch = "arm64"
[[builds.os.archs]]
goarch = "arm"
[builds.os.archs.build_settings]
env = ["CGO_ENABLED=0", "GOARM=7"]
# Unix BSD variants
[[builds.os]]
goos = "dragonfly"
[[builds.os.archs]]
goarch = "amd64"
[[builds.os]]
goos = "freebsd"
[[builds.os.archs]]
goarch = "amd64"
[[builds.os]]
goos = "netbsd"
[[builds.os.archs]]
goarch = "amd64"
[[builds.os]]
goos = "openbsd"
[[builds.os.archs]]
goarch = "amd64"
[[builds.os]]
goos = "solaris"
[[builds.os.archs]]
goarch = "amd64"
[[builds]]
path = "container1/unix/extended"
[builds.build_settings]
flags = ["-buildmode", "exe", "-tags", "extended"]
env = ["CGO_ENABLED=1"]
[[builds.os]]
goos = "darwin"
[builds.os.build_settings]
env = ["CGO_ENABLED=1", "CC=o64-clang", "CXX=o64-clang++"]
[[builds.os.archs]]
goarch = "universal"
[[builds.os]]
goos = "linux"
[[builds.os.archs]]
goarch = "amd64"
[[builds]]
path = "container1/unix/extended-withdeploy"
[builds.build_settings]
flags = ["-buildmode", "exe", "-tags", "extended,withdeploy"]
env = ["CGO_ENABLED=1"]
[[builds.os]]
goos = "darwin"
[builds.os.build_settings]
env = ["CGO_ENABLED=1", "CC=o64-clang", "CXX=o64-clang++"]
[[builds.os.archs]]
goarch = "universal"
[[builds.os]]
goos = "linux"
[[builds.os.archs]]
goarch = "amd64"
[[builds]]
path = "container2/linux/extended"
[builds.build_settings]
flags = ["-buildmode", "exe", "-tags", "extended"]
[[builds.os]]
goos = "linux"
[builds.os.build_settings]
env = [
"CGO_ENABLED=1",
"CC=aarch64-linux-gnu-gcc",
"CXX=aarch64-linux-gnu-g++",
]
[[builds.os.archs]]
goarch = "arm64"
[[builds]]
path = "container2/linux/extended-withdeploy"
[builds.build_settings]
flags = ["-buildmode", "exe", "-tags", "extended,withdeploy"]
[[builds.os]]
goos = "linux"
[builds.os.build_settings]
env = [
"CGO_ENABLED=1",
"CC=aarch64-linux-gnu-gcc",
"CXX=aarch64-linux-gnu-g++",
]
[[builds.os.archs]]
goarch = "arm64"
[[builds]]
path = "container1/windows/regular"
[[builds.os]]
goos = "windows"
[builds.os.build_settings]
binary = "hugo.exe"
[[builds.os.archs]]
goarch = "amd64"
[[builds.os.archs]]
goarch = "arm64"
[[builds]]
path = "container1/windows/extended"
[builds.build_settings]
flags = ["-buildmode", "exe", "-tags", "extended"]
env = [
"CGO_ENABLED=1",
"CC=x86_64-w64-mingw32-gcc",
"CXX=x86_64-w64-mingw32-g++",
]
ldflags = "-s -w -X github.com/gohugoio/hugo/common/hugo.vendorInfo=gohugoio -extldflags '-static'"
[[builds.os]]
goos = "windows"
[builds.os.build_settings]
binary = "hugo.exe"
[[builds.os.archs]]
goarch = "amd64"
[[builds]]
path = "container1/windows/extended-withdeploy"
[builds.build_settings]
flags = ["-buildmode", "exe", "-tags", "extended,withdeploy"]
env = [
"CGO_ENABLED=1",
"CC=x86_64-w64-mingw32-gcc",
"CXX=x86_64-w64-mingw32-g++",
]
ldflags = "-s -w -X github.com/gohugoio/hugo/common/hugo.vendorInfo=gohugoio -extldflags '-static'"
[[builds.os]]
goos = "windows"
[builds.os.build_settings]
binary = "hugo.exe"
[[builds.os.archs]]
goarch = "amd64"
[[archives]]
paths = ["builds/container1/unix/regular/**"]
[[archives]]
paths = ["builds/container1/unix/extended/**"]
[archives.archive_settings]
name_template = "{{ .Project }}_extended_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
[[archives]]
paths = ["builds/container1/unix/extended-withdeploy/**"]
[archives.archive_settings]
name_template = "{{ .Project }}_extended_withdeploy_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
[[archives]]
paths = ["builds/container2/*/extended/**"]
[archives.archive_settings]
name_template = "{{ .Project }}_extended_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
[[archives]]
paths = ["builds/container2/*/extended-withdeploy/**"]
[archives.archive_settings]
name_template = "{{ .Project }}_extended_withdeploy_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
[[archives]]
paths = ["builds/**/windows/regular/**"]
[archives.archive_settings.type]
format = "zip"
extension = ".zip"
[[archives]]
paths = ["builds/**/windows/extended/**"]
[archives.archive_settings]
name_template = "{{ .Project }}_extended_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
[archives.archive_settings.type]
format = "zip"
extension = ".zip"
[[archives]]
paths = ["builds/**/windows/extended-withdeploy/**"]
[archives.archive_settings]
name_template = "{{ .Project }}_extended_withdeploy_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
[archives.archive_settings.type]
format = "zip"
extension = ".zip"
[[archives]]
paths = ["builds/**/regular/linux/{arm64,amd64}"]
[archives.archive_settings]
binary_dir = "/usr/local/bin"
extra_files = []
[archives.archive_settings.type]
format = "_plugin"
extension = ".deb"
[archives.archive_settings.plugin]
id = "deb"
type = "gorun"
command = "github.com/gohugoio/hugoreleaser-archive-plugins/deb@v0.6.1"
[archives.archive_settings.custom_settings]
vendor = "gohugo.io"
homepage = "https://github.com/gohugoio/hugo"
maintainer = "Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>"
description = "A fast and flexible Static Site Generator written in Go."
license = "Apache-2.0"
[[archives]]
paths = ["builds/**/extended/linux/{arm64,amd64}"]
[archives.archive_settings]
binary_dir = "/usr/local/bin"
extra_files = []
name_template = "{{ .Project }}_extended_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
[archives.archive_settings.type]
format = "_plugin"
extension = ".deb"
[archives.archive_settings.plugin]
id = "deb"
type = "gorun"
command = "github.com/gohugoio/hugoreleaser-archive-plugins/deb@latest"
[archives.archive_settings.custom_settings]
vendor = "gohugo.io"
homepage = "https://github.com/gohugoio/hugo"
maintainer = "Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>"
description = "A fast and flexible Static Site Generator written in Go."
license = "Apache-2.0"
[[releases]]
paths = ["archives/**"]
path = "r1"
# The above should allow the following build commands:
# hugoreleaser build -paths "builds/container1/**"
# hugoreleaser build -paths "builds/container2/**"
# hugoreleaser archive
# hugoreleaser release

272
hugoreleaser.yaml Normal file
View file

@ -0,0 +1,272 @@
project: hugo
# Common definitions.
definitions:
archive_type_zip: &archive_type_zip
type:
format: zip
extension: .zip
env_extended_linux: &env_extended_linux
- CGO_ENABLED=1
- CC=aarch64-linux-gnu-gcc
- CXX=aarch64-linux-gnu-g++
env_extended_windows: &env_extended_windows
- CGO_ENABLED=1
- CC=x86_64-w64-mingw32-gcc
- CXX=x86_64-w64-mingw32-g++
env_extended_darwin: &env_extended_darwin
- CGO_ENABLED=1
- CC=o64-clang
- CXX=o64-clang++
name_template_extended_withdeploy: &name_template_extended_withdeploy "{{ .Project }}_extended_withdeploy_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
name_template_extended: &name_template_extended "{{ .Project }}_extended_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
archive_deb: &archive_deb
binary_dir: /usr/local/bin
extra_files: []
type:
format: _plugin
extension: .deb
plugin:
id: deb
type: gorun
command: github.com/gohugoio/hugoreleaser-archive-plugins/deb@latest
custom_settings:
vendor: gohugo.io
homepage: https://github.com/gohugoio/hugo
maintainer: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
description: A fast and flexible Static Site Generator written in Go.
license: Apache-2.0
archive_alias_replacements:
linux-amd64.tar.gz: Linux-64bit.tar.gz
go_settings:
go_proxy: https://proxy.golang.org
go_exe: go
build_settings:
binary: hugo
flags:
- -buildmode
- exe
env:
- CGO_ENABLED=0
ldflags: -s -w -X github.com/gohugoio/hugo/common/hugo.vendorInfo=gohugoio
archive_settings:
name_template: "{{ .Project }}_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
extra_files:
- source_path: README.md
target_path: README.md
- source_path: LICENSE
target_path: LICENSE
type:
format: tar.gz
extension: .tar.gz
release_settings:
name: ${HUGORELEASER_TAG}
type: github
repository: hugo
repository_owner: gohugoio
draft: true
prerelease: false
release_notes_settings:
generate: true
short_threshold: 10
short_title: What's Changed
groups:
- regexp: "Merge commit|Squashed|releaser:"
ignore: true
- title: Note
regexp: (note|deprecated)
ordinal: 10
- title: Bug fixes
regexp: fix
ordinal: 15
- title: Dependency Updates
regexp: deps
ordinal: 30
- title: Build Setup
regexp: (snap|release|update to)
ordinal: 40
- title: Documentation
regexp: (doc|readme)
ordinal: 40
- title: Improvements
regexp: .*
ordinal: 20
builds:
- path: container1/unix/regular
os:
- goos: darwin
archs:
- goarch: universal
- goos: linux
archs:
- goarch: amd64
- goarch: arm64
- goarch: arm
build_settings:
env:
- CGO_ENABLED=0
- GOARM=7
- goos: dragonfly
archs:
- goarch: amd64
- goos: freebsd
archs:
- goarch: amd64
- goos: netbsd
archs:
- goarch: amd64
- goos: openbsd
archs:
- goarch: amd64
- goos: solaris
archs:
- goarch: amd64
- path: container1/unix/extended
build_settings:
flags:
- -buildmode
- exe
- -tags
- extended
env:
- CGO_ENABLED=1
os:
- goos: darwin
build_settings:
env: *env_extended_darwin
archs:
- goarch: universal
- goos: linux
archs:
- goarch: amd64
- path: container1/unix/extended-withdeploy
build_settings:
flags:
- -buildmode
- exe
- -tags
- extended,withdeploy
env:
- CGO_ENABLED=1
os:
- goos: darwin
build_settings:
env: *env_extended_darwin
archs:
- goarch: universal
- goos: linux
archs:
- goarch: amd64
- path: container2/linux/extended
build_settings:
flags:
- -buildmode
- exe
- -tags
- extended
os:
- goos: linux
build_settings:
env: *env_extended_linux
archs:
- goarch: arm64
- path: container2/linux/extended-withdeploy
build_settings:
flags:
- -buildmode
- exe
- -tags
- extended,withdeploy
os:
- goos: linux
build_settings:
env: *env_extended_linux
archs:
- goarch: arm64
- path: container1/windows/regular
os:
- goos: windows
build_settings:
binary: hugo.exe
archs:
- goarch: amd64
- goarch: arm64
- path: container1/windows/extended
build_settings:
flags:
- -buildmode
- exe
- -tags
- extended
env: *env_extended_windows
ldflags: -s -w -X github.com/gohugoio/hugo/common/hugo.vendorInfo=gohugoio -extldflags '-static'
os:
- goos: windows
build_settings:
binary: hugo.exe
archs:
- goarch: amd64
- path: container1/windows/extended-withdeploy
build_settings:
flags:
- -buildmode
- exe
- -tags
- extended,withdeploy
env: *env_extended_windows
ldflags: -s -w -X github.com/gohugoio/hugo/common/hugo.vendorInfo=gohugoio -extldflags '-static'
os:
- goos: windows
build_settings:
binary: hugo.exe
archs:
- goarch: amd64
archives:
- paths:
- builds/container1/unix/regular/**
- paths:
- builds/container1/unix/extended/**
archive_settings:
name_template: *name_template_extended
- paths:
- builds/container1/unix/extended-withdeploy/**
archive_settings:
name_template: *name_template_extended_withdeploy
- paths:
- builds/container2/*/extended/**
archive_settings:
name_template: *name_template_extended
- paths:
- builds/container2/*/extended-withdeploy/**
archive_settings:
name_template: *name_template_extended_withdeploy
- paths:
- builds/**/windows/regular/**
archive_settings: *archive_type_zip
- paths:
- builds/**/windows/extended/**
archive_settings:
name_template: *name_template_extended
<<: *archive_type_zip
- paths:
- builds/**/windows/extended-withdeploy/**
archive_settings:
name_template: *name_template_extended_withdeploy
<<: *archive_type_zip
- paths:
- builds/**/regular/linux/{arm64,amd64}
archive_settings: *archive_deb
- paths:
- builds/**/extended/linux/{arm64,amd64}
archive_settings:
name_template: *name_template_extended
<<: *archive_deb
- paths:
- builds/**/extended-withdeploy/linux/{arm64,amd64}
archive_settings:
name_template: *name_template_extended_withdeploy
<<: *archive_deb
releases:
- paths:
- archives/**
path: r1