synapsecns/sanguine

View on GitHub
contrib/opbot/.goreleaser.yml

Summary

Maintainability
Test Coverage
project_name: opbot

monorepo:
  tag_prefix: contrib/opbot/
  dir: contrib/opbot/

builds:
  # Linux AMD64
  - id: opbot
    binary: opbot
    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 }}
    gcflags:
      - -dwarflocationlists=true
    # 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
  - id: signozexample
    binary: signozexample
    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 }}
    # see above about workaround
    tags:
      - netgo
      - osusergo
    env:
      - CC=gcc
      - CXX=g++
    main: signoz/example/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/opbot:latest'
      - 'ghcr.io/synapsecns/sanguine/opbot:{{ .FullCommit }}'
      - 'ghcr.io/synapsecns/sanguine/opbot:{{ .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/opbot.Dockerfile
    ids:
      - opbot