synapsecns/sanguine

View on GitHub
agents/.goreleaser.yml

Summary

Maintainability
Test Coverage
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