project_name: wiretrustee
builds:
  - id: wiretrustee
    dir: client
    binary: wiretrustee
    env: [CGO_ENABLED=0]

    goos:
      - linux
      - darwin
      - windows
    goarch:
      - arm
      - amd64
      - arm64
      - mips
    gomips:
      - hardfloat
      - softfloat
    ignore:
      - goos: windows
        goarch: arm64
      - goos: windows
        goarch: arm
    ldflags:
      - -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}} -X main.builtBy=goreleaser
    mod_timestamp: '{{ .CommitTimestamp }}'
    tags:
      - load_wintun_from_rsrc

  - id: wiretrustee-mgmt
    dir: management
    env: [CGO_ENABLED=0]
    binary: wiretrustee-mgmt
    goos:
      - linux
    goarch:
      - amd64
      - arm64
    ldflags:
      - -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}} -X main.builtBy=goreleaser
    mod_timestamp: '{{ .CommitTimestamp }}'

  - id: wiretrustee-signal
    dir: signal
    env: [CGO_ENABLED=0]
    binary: wiretrustee-signal
    goos:
      - linux
    goarch:
      - amd64
      - arm64
    ldflags:
      - -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}} -X main.builtBy=goreleaser
    mod_timestamp: '{{ .CommitTimestamp }}'
archives:
  - builds:
      - wiretrustee
nfpms:
  - maintainer: Wiretrustee <dev@wiretrustee.com>
    description: Wiretrustee client.
    homepage: https://wiretrustee.com/
    id: deb
    builds:
      - wiretrustee
    formats:
      - deb

    scripts:
      postinstall: "release_files/post_install.sh"
      preremove: "release_files/pre_remove.sh"

  - maintainer: Wiretrustee <dev@wiretrustee.com>
    description: Wiretrustee client.
    homepage: https://wiretrustee.com/
    id: rpm
    builds:
      - wiretrustee
    formats:
      - rpm

    scripts:
      postinstall: "release_files/post_install.sh"
      preremove: "release_files/pre_remove.sh"
dockers:
  - image_templates:
      - wiretrustee/signal:{{ .Version }}-amd64
    ids:
      - wiretrustee-signal
    goarch: amd64
    use: buildx
    dockerfile: signal/Dockerfile
    build_flag_templates:
      - "--platform=linux/amd64"
      - "--label=org.opencontainers.image.created={{.Date}}"
      - "--label=org.opencontainers.image.title={{.ProjectName}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=org.opencontainers.image.revision={{.FullCommit}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=maintainer=wiretrustee@wiretrustee.com"
  - image_templates:
      - wiretrustee/signal:{{ .Version }}-arm64v8
    ids:
      - wiretrustee-signal
    goarch: arm64
    use: buildx
    dockerfile: signal/Dockerfile
    build_flag_templates:
      - "--platform=linux/arm64"
      - "--label=org.opencontainers.image.created={{.Date}}"
      - "--label=org.opencontainers.image.title={{.ProjectName}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=org.opencontainers.image.revision={{.FullCommit}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=maintainer=wiretrustee@wiretrustee.com"
  - image_templates:
      - wiretrustee/management:{{ .Version }}-amd64
    ids:
      - wiretrustee-mgmt
    goarch: amd64
    use: buildx
    dockerfile: management/Dockerfile
    build_flag_templates:
      - "--platform=linux/amd64"
      - "--label=org.opencontainers.image.created={{.Date}}"
      - "--label=org.opencontainers.image.title={{.ProjectName}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=org.opencontainers.image.revision={{.FullCommit}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=maintainer=wiretrustee@wiretrustee.com"
  - image_templates:
      - wiretrustee/management:{{ .Version }}-arm64v8
    ids:
      - wiretrustee-mgmt
    goarch: arm64
    use: buildx
    dockerfile: management/Dockerfile
    build_flag_templates:
      - "--platform=linux/arm64"
      - "--label=org.opencontainers.image.created={{.Date}}"
      - "--label=org.opencontainers.image.title={{.ProjectName}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=org.opencontainers.image.revision={{.FullCommit}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=maintainer=wiretrustee@wiretrustee.com"
  - image_templates:
      - wiretrustee/management:{{ .Version }}-debug-amd64
    ids:
      - wiretrustee-mgmt
    goarch: amd64
    use: buildx
    dockerfile: management/Dockerfile.debug
    build_flag_templates:
      - "--platform=linux/amd64"
      - "--label=org.opencontainers.image.created={{.Date}}"
      - "--label=org.opencontainers.image.title={{.ProjectName}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=org.opencontainers.image.revision={{.FullCommit}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=maintainer=wiretrustee@wiretrustee.com"
  - image_templates:
      - wiretrustee/management:{{ .Version }}-debug-arm64v8
    ids:
      - wiretrustee-mgmt
    goarch: arm64
    use: buildx
    dockerfile: management/Dockerfile.debug
    build_flag_templates:
      - "--platform=linux/arm64"
      - "--label=org.opencontainers.image.created={{.Date}}"
      - "--label=org.opencontainers.image.title={{.ProjectName}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=org.opencontainers.image.revision={{.FullCommit}}"
      - "--label=org.opencontainers.image.version={{.Version}}"
      - "--label=maintainer=wiretrustee@wiretrustee.com"

docker_manifests:
  - name_template: wiretrustee/signal:{{ .Version }}
    image_templates:
      - wiretrustee/signal:{{ .Version }}-arm64v8
      - wiretrustee/signal:{{ .Version }}-amd64

  - name_template: wiretrustee/signal:latest
    image_templates:
      - wiretrustee/signal:{{ .Version }}-arm64v8
      - wiretrustee/signal:{{ .Version }}-amd64

  - name_template: wiretrustee/management:{{ .Version }}
    image_templates:
      - wiretrustee/management:{{ .Version }}-arm64v8
      - wiretrustee/management:{{ .Version }}-amd64

  - name_template: wiretrustee/management:latest
    image_templates:
      - wiretrustee/management:{{ .Version }}-arm64v8
      - wiretrustee/management:{{ .Version }}-amd64

  - name_template: wiretrustee/management:debug-latest
    image_templates:
      - wiretrustee/management:{{ .Version }}-debug-arm64v8
      - wiretrustee/management:{{ .Version }}-debug-amd64

brews:
  -
    tap:
      owner: wiretrustee
      name: homebrew-client
      token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
    commit_author:
      name: Wiretrustee
      email: wiretrustee@wiretrustee.com
    description: Wiretrustee project.
    download_strategy: CurlDownloadStrategy
    homepage: https://wiretrustee.com/
    license: "BSD3"
    test: |
      system "#{bin}/{{ .ProjectName	}} -h"

uploads:
  - name: debian
    ids:
    - deb
    mode: archive
    target: https://pkgs.wiretrustee.com/debian/pool/{{ .ArtifactName }};deb.distribution=stable;deb.component=main;deb.architecture={{ if .Arm }}armhf{{ else }}{{ .Arch }}{{ end }};deb.package=
    username: dev@wiretrustee.com
    method: PUT
  - name: yum
    ids:
      - rpm
    mode: archive
    target: https://pkgs.wiretrustee.com/yum/{{ .Arch }}{{ if .Arm }}{{ .Arm }}{{ end }}
    username: dev@wiretrustee.com
    method: PUT
