ecadlabs/signatory

View on GitHub
.goreleaser.yml

Summary

Maintainability
Test Coverage
builds:
# LINUX
  - id: signatory-linux-amd
    binary: signatory
    env:
      - CGO_ENABLED=1
      - CC=gcc
      - CXX=g++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - linux
    goarch:
      - amd64
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

  - id: signatory-cli-linux-amd
    binary: signatory-cli
    env:
      - CGO_ENABLED=1
      - CC=gcc
      - CXX=g++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory-cli/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - linux
    goarch:
      - amd64
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

  - id: signatory-linux-arm64
    binary: signatory
    env:
      - CGO_ENABLED=1
      - CC=aarch64-linux-gnu-gcc
      - CXX=aarch64-linux-gnu-g++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - linux
    goarch:
      - arm64
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

  - id: signatory-cli-linux-arm64
    binary: signatory-cli
    env:
      - CGO_ENABLED=1
      - CC=aarch64-linux-gnu-gcc
      - CXX=aarch64-linux-gnu-g++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory-cli/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - linux
    goarch:
      - arm64
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

  - id: signatory-linux-arm
    binary: signatory
    env:
      - CGO_ENABLED=1
      - CC=arm-linux-gnueabihf-gcc
      - CXX=arm-linux-gnueabihf-g++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - linux
    goarch:
      - arm
    goarm:
      - '6'
      - '7'
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

  - id: signatory-cli-linux-arm
    binary: signatory-cli
    env:
      - CGO_ENABLED=1
      - CC=arm-linux-gnueabihf-gcc
      - CXX=arm-linux-gnueabihf-g++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory-cli/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - linux
    goarch:
      - arm
    goarm:
      - '6'
      - '7'
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

# MACOS
  - id: signatory-darwin-amd
    binary: signatory
    env:
      - CGO_ENABLED=1
      - CC=o64-clang
      - CXX=o64-clang++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - darwin
    goarch:
      - amd64
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

  - id: signatory-cli-darwing-amd
    binary: signatory-cli
    env:
      - CGO_ENABLED=1
      - CC=o64-clang
      - CXX=o64-clang++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory-cli/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - darwin
    goarch:
      - amd64
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

  - id: signatory-darwin-arm
    binary: signatory
    env:
      - CGO_ENABLED=1
      - CC=oa64-clang
      - CXX=oa64-clang++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - darwin
    goarch:
      - arm64
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

  - id: signatory-cli-darwing-arm
    binary: signatory-cli
    env:
      - CGO_ENABLED=1
      - CC=oa64-clang
      - CXX=oa64-clang++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory-cli/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - darwin
    goarch:
      - arm64
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

# WINDOWS
  - id: signatory-windows-amd
    binary: signatory
    env:
      - CGO_ENABLED=1
      - CC=x86_64-w64-mingw32-gcc
      - CXX=x86_64-w64-mingw32-g++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - windows
    goarch:
      - amd64
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

  - id: signatory-cli-windows-amd
    binary: signatory-cli
    env:
      - CGO_ENABLED=1
      - CC=x86_64-w64-mingw32-gcc
      - CXX=x86_64-w64-mingw32-g++
      - >-
        {{- if .IsSnapshot }}GOEXPERIMENT=coverageredesign{{- end }}
    main: ./cmd/signatory-cli/main.go
    ldflags:
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitRevision={{.Version}}'
      - '-X github.com/ecadlabs/signatory/pkg/metrics.GitBranch={{.Version}}'
    goos:
      - windows
    goarch:
      - amd64
    flags:
      - '{{ if .IsSnapshot }}-cover{{ else }}-v{{ end }}'

dockers:
  - ids:
      - signatory
      - signatory-cli
  - image_templates:
    - '{{ if .IsSnapshot }}ghcr.io/{{ end }}ecadlabs/signatory:{{ if .IsSnapshot }}{{ .FullCommit }}{{ else }}{{ .Tag }}{{ end }}-amd64'
    - '{{ if not .IsSnapshot }}ecadlabs/signatory:latest-amd64{{ end }}'
    dockerfile: goreleaser.dockerfile
    use: buildx
    build_flag_templates:
    - "--pull"
    - "--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}}"
    - "--platform=linux/amd64"
  - image_templates:
    - '{{ if .IsSnapshot }}ghcr.io/{{ end }}ecadlabs/signatory:{{ if .IsSnapshot }}{{ .FullCommit }}{{ else }}{{ .Tag }}{{ end }}-arm64'
    - '{{ if not .IsSnapshot }}ecadlabs/signatory:latest-arm64{{ end }}'
    dockerfile: goreleaser.dockerfile
    use: buildx
    build_flag_templates:
    - "--pull"
    - "--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}}"
    - "--platform=linux/arm64"
    goarch: arm64
  - image_templates:
    - '{{ if .IsSnapshot }}ghcr.io/{{ end }}ecadlabs/signatory:{{ if .IsSnapshot }}{{ .FullCommit }}{{ else }}{{ .Tag }}{{ end }}-armv7'
    - '{{ if not .IsSnapshot }}ecadlabs/signatory:latest-armv7{{ end }}'
    dockerfile: goreleaser.dockerfile
    use: buildx
    build_flag_templates:
    - "--pull"
    - "--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}}"
    - "--platform=linux/arm/v7"
    goarch: arm
    goarm: '7'

docker_manifests:
  - name_template: 'ecadlabs/signatory:latest'
    image_templates:
      - 'ecadlabs/signatory:latest-amd64'
      - 'ecadlabs/signatory:latest-arm64'
      - 'ecadlabs/signatory:latest-armv7'
  - name_template: 'ecadlabs/signatory:{{ .Tag }}'
    image_templates:
      - 'ecadlabs/signatory:{{ .Tag }}-amd64'
      - 'ecadlabs/signatory:{{ .Tag }}-arm64'
      - 'ecadlabs/signatory:{{ .Tag }}-armv7'

checksum:
  name_template: checksums.txt
snapshot:
  name_template: 'SNAPSHOT-{{.ShortCommit}}'
changelog:
  sort: asc
  filters:
    exclude:
      - '^docs:'
      - '^website:'
      - '^test:'

release:
  prerelease: auto