agents/.goreleaser.yml
project_name: agents
monorepo:
tag_prefix: agents/
dir: agents/
builds:
# Linux AMD64
- id: agents
binary: agents
gcflags:
- all=-dwarflocationlists=true
ldflags:
# We need to build a static binary because we are building in a glibc based system and running in a musl container
- -extldflags '-static' -X github.com/synapsecns/sanguine/core/config.DefaultVersion={{.Version}} -X github.com/synapsecns/sanguine/core/config.DefaultCommit={{.Commit}} -X github.com/synapsecns/sanguine/core/config.DefaultDate={{ .CommitDate }}
# required workaround for https://github.com/Shopify/sarama/issues/2206
# See: https://github.com/golang/go/issues/35067#issuecomment-544805311 because we're statically compiling,
# without forcing netgo, we use the cgo resolver which will not work for .local (a canonical tld in kubernetes)
# the other way to resolve this would be to modify the nsswitch.conf in the container, but that's a bit less clean.
# osusergo was included as a recommendation here: https://github.com/kubernetes/kubernetes/pull/114225#issuecomment-1348920040
tags:
- netgo
- osusergo
env:
- CC=gcc
- CXX=g++
main: main.go
goos:
- linux
goarch:
- amd64
# add a source archive at release time
source:
enabled: true
# Archives
archives:
- format: tar.gz
wrap_in_directory: true
format_overrides:
- goos: windows
format: zip
name_template: '{{.ProjectName}}-{{.Version}}_{{.Os}}_{{.Arch}}'
files:
- README.md
checksum:
name_template: checksums.txt
# Add a changelog
changelog:
sort: asc
dockers:
# Docker AMD64
- goos: linux
goarch: amd64
image_templates:
- 'ghcr.io/synapsecns/sanguine/agents:latest'
- 'ghcr.io/synapsecns/sanguine/agents:{{ .FullCommit }}'
- 'ghcr.io/synapsecns/sanguine/agents:{{ .Tag }}'
build_flag_templates:
- '--label=org.opencontainers.image.created={{.Date}}'
- '--label=org.opencontainers.image.name={{.ProjectName}}'
- '--label=org.opencontainers.image.revision={{.FullCommit}}'
- '--label=org.opencontainers.image.version={{.Version}}'
- '--label=org.opencontainers.image.source={{.GitURL}}'
dockerfile: ../docker/agents.Dockerfile
ids:
- agents
# track sizes
report_sizes: true
# modified timestamps
metadata:
# Set the modified timestamp on the metadata files.
#
# Templates: allowed.
mod_timestamp: '{{ .CommitTimestamp }}'
# produce software bill of lading
sboms:
- artifacts: archive