version: 2 project_name: lego builds: - binary: lego main: ./cmd/lego/main.go env: - CGO_ENABLED=0 flags: - -trimpath ldflags: - -s -w -X main.version={{.Version}} goos: - linux - darwin - windows - freebsd - openbsd - solaris goarch: - amd64 - 386 - arm - arm64 - mips - mipsle - mips64 - mips64le goarm: - 7 - 6 - 5 gomips: - hardfloat - softfloat ignore: - goos: darwin goarch: 386 - goos: openbsd goarch: arm changelog: sort: asc filters: exclude: - '(?i)^chore:' - '(?i)^Detach v[\d|.]+' - '(?i)^Prepare release v[\d|.]+' archives: - id: lego name_template: '{{ .ProjectName }}_v{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}{{ if .Mips }}_{{ .Mips }}{{ end }}' format: tar.gz format_overrides: - goos: windows format: zip files: - LICENSE - CHANGELOG.md docker_manifests: - name_template: 'goacme/lego:{{ .Tag }}' image_templates: - 'goacme/lego:{{ .Tag }}-amd64' - 'goacme/lego:{{ .Tag }}-arm64' - 'goacme/lego:{{ .Tag }}-armv7' - name_template: 'goacme/lego:latest' image_templates: - 'goacme/lego:{{ .Tag }}-amd64' - 'goacme/lego:{{ .Tag }}-arm64' - 'goacme/lego:{{ .Tag }}-armv7' - name_template: 'goacme/lego:v{{ .Major }}.{{ .Minor }}' image_templates: - 'goacme/lego:v{{ .Major }}.{{ .Minor }}-amd64' - 'goacme/lego:v{{ .Major }}.{{ .Minor }}-arm64' - 'goacme/lego:v{{ .Major }}.{{ .Minor }}-armv7' dockers: - use: buildx goos: linux goarch: amd64 dockerfile: buildx.Dockerfile image_templates: - 'goacme/lego:latest-amd64' - 'goacme/lego:{{ .Tag }}-amd64' - 'goacme/lego:v{{ .Major }}.{{ .Minor }}-amd64' build_flag_templates: - '--pull' # https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys - '--label=org.opencontainers.image.title={{.ProjectName}}' - '--label=org.opencontainers.image.description=Lets Encrypt/ACME client and library written in Go' - '--label=org.opencontainers.image.source={{.GitURL}}' - '--label=org.opencontainers.image.url={{.GitURL}}' - '--label=org.opencontainers.image.documentation=https://go-acme.github.io/lego' - '--label=org.opencontainers.image.created={{.Date}}' - '--label=org.opencontainers.image.revision={{.FullCommit}}' - '--label=org.opencontainers.image.version={{.Version}}' - '--platform=linux/amd64' - use: buildx goos: linux goarch: arm64 dockerfile: buildx.Dockerfile image_templates: - 'goacme/lego:latest-arm64' - 'goacme/lego:{{ .Tag }}-arm64' - 'goacme/lego:v{{ .Major }}.{{ .Minor }}-arm64' build_flag_templates: - '--pull' # https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys - '--label=org.opencontainers.image.title={{.ProjectName}}' - '--label=org.opencontainers.image.description=Lets Encrypt/ACME client and library written in Go' - '--label=org.opencontainers.image.source={{.GitURL}}' - '--label=org.opencontainers.image.url={{.GitURL}}' - '--label=org.opencontainers.image.documentation=https://go-acme.github.io/lego' - '--label=org.opencontainers.image.created={{.Date}}' - '--label=org.opencontainers.image.revision={{.FullCommit}}' - '--label=org.opencontainers.image.version={{.Version}}' - '--platform=linux/arm64' - use: buildx goos: linux goarch: arm goarm: '7' dockerfile: buildx.Dockerfile image_templates: - 'goacme/lego:latest-armv7' - 'goacme/lego:{{ .Tag }}-armv7' - 'goacme/lego:v{{ .Major }}.{{ .Minor }}-armv7' build_flag_templates: - '--pull' # https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys - '--label=org.opencontainers.image.title={{.ProjectName}}' - '--label=org.opencontainers.image.description=Lets Encrypt/ACME client and library written in Go' - '--label=org.opencontainers.image.source={{.GitURL}}' - '--label=org.opencontainers.image.url={{.GitURL}}' - '--label=org.opencontainers.image.documentation=https://go-acme.github.io/lego' - '--label=org.opencontainers.image.created={{.Date}}' - '--label=org.opencontainers.image.revision={{.FullCommit}}' - '--label=org.opencontainers.image.version={{.Version}}' - '--platform=linux/arm/v7' # Disabled because https://github.com/go-acme/lego/pull/2134#issuecomment-2135293270 snapcrafts: - name: lego disable: true grade: stable confinement: strict license: MIT base: core22 publish: true summary: Lego is a Let's Encrypt/ACME client. description: | Lego is a Let's Encrypt/ACME client written in Go. The lego snap makes it easy to install and use Lego on any Linux distribution that supports snaps. Usage: * `sudo snap install lego` * `sudo lego --email="you@example.com" --domains="example.com" --server=https://acme-staging-v02.api.letsencrypt.org/directory --http --http.port :8080 run channel_templates: - edge apps: lego: command: bin/lego environment: LEGO_PATH: /var/snap/lego/common/.lego plugs: - network-bind