goreleaser / goreleaser

Deliver Go binaries as fast and easily as possible
https://goreleaser.com
MIT License
13.81k stars 944 forks source link

Goreleaser does not upload x86_64 package to AUR #4947

Closed kvendingoldo closed 4 months ago

kvendingoldo commented 4 months ago

What happened?

Goreleaser does not upload x86_64 package to AUR

How can we reproduce this?

project_name: tenv
version: 2

before:
  hooks:
    - go mod tidy
    - go test ./...
    - go get -u ./cmd/tenv
    - go get -u ./cmd/tofu
    - go get -u ./cmd/terraform
    - go get -u ./cmd/terragrunt
    - go get -u ./cmd/tf
    - go get -u ./cmd/atmos

builds:
  - id: tenv
    main: ./cmd/tenv
    binary: tenv
    env:
      - CGO_ENABLED=0
    ldflags:
      - -s -w -X main.version={{.Tag}}
    goos:
      - linux
      - windows
      - darwin
      - freebsd
      - openbsd
      - solaris
    goarch:
      - "386"
      - amd64
      - arm
      - arm64
    goarm:
      - "6"
      - "7"
    ignore:
      - goos: darwin
        goarch: "386"
      - goos: darwin
        goarch: arm
      - goos: solaris
        goarch: "386"
      - goos: solaris
        goarch: arm
      - goos: solaris
        goarch: arm64

  - id: tofu
    binary: tofu
    main: ./cmd/tofu
    env:
      - CGO_ENABLED=0
    goos:
      - linux
      - windows
      - darwin
      - freebsd
      - openbsd
      - solaris
    goarch:
      - "386"
      - amd64
      - arm
      - arm64
    goarm:
      - "6"
      - "7"
    ignore:
      - goos: darwin
        goarch: "386"
      - goos: darwin
        goarch: arm
      - goos: solaris
        goarch: "386"
      - goos: solaris
        goarch: arm
      - goos: solaris
        goarch: arm64

  - id: terraform
    binary: terraform
    main: ./cmd/terraform
    env:
      - CGO_ENABLED=0
    goos:
      - linux
      - windows
      - darwin
      - freebsd
      - openbsd
      - solaris
    goarch:
      - "386"
      - amd64
      - arm
      - arm64
    goarm:
      - "6"
      - "7"
    ignore:
      - goos: darwin
        goarch: "386"
      - goos: darwin
        goarch: arm
      - goos: solaris
        goarch: "386"
      - goos: solaris
        goarch: arm
      - goos: solaris
        goarch: arm64

  - id: terragrunt
    binary: terragrunt
    main: ./cmd/terragrunt
    env:
      - CGO_ENABLED=0
    goos:
      - linux
      - windows
      - darwin
      - freebsd
      - openbsd
      - solaris
    goarch:
      - "386"
      - amd64
      - arm
      - arm64
    goarm:
      - "6"
      - "7"
    ignore:
      - goos: darwin
        goarch: "386"
      - goos: darwin
        goarch: arm
      - goos: solaris
        goarch: "386"
      - goos: solaris
        goarch: arm
      - goos: solaris
        goarch: arm64

  - id: tf
    binary: tf
    main: ./cmd/tf
    env:
      - CGO_ENABLED=0
    goos:
      - linux
      - windows
      - darwin
      - freebsd
      - openbsd
      - solaris
    goarch:
      - "386"
      - amd64
      - arm
      - arm64
    goarm:
      - "6"
      - "7"
    ignore:
      - goos: darwin
        goarch: "386"
      - goos: darwin
        goarch: arm
      - goos: solaris
        goarch: "386"
      - goos: solaris
        goarch: arm
      - goos: solaris
        goarch: arm64

  - id: atmos
    binary: atmos
    main: ./cmd/atmos
    env:
      - CGO_ENABLED=0
    goos:
      - linux
      - windows
      - darwin
      - freebsd
      - openbsd
      - solaris
    goarch:
      - "386"
      - amd64
      - arm
      - arm64
    goarm:
      - "6"
      - "7"
    ignore:
      - goos: darwin
        goarch: "386"
      - goos: darwin
        goarch: arm
      - goos: solaris
        goarch: "386"
      - goos: solaris
        goarch: arm
      - goos: solaris
        goarch: arm64

archives:
  - format: tar.gz
    # this name template makes the OS and Arch compatible with the results of `uname`.
    name_template: >-
      {{ .ProjectName }}_
      {{- .Tag }}_
      {{- title .Os }}_
      {{- if eq .Arch "amd64" }}x86_64
      {{- else if eq .Arch "386" }}i386
      {{- else }}{{ .Arch }}{{ end }}
      {{- if .Arm }}v{{ .Arm }}{{ end }}
    # use zip for windows archives
    format_overrides:
      - goos: windows
        format: zip

release:
  name_template: "Release {{.Tag}}"

changelog:
  use: github-native
  sort: asc
  filters:
    exclude:
      - "^test:"

checksum:
  name_template: "{{ .ProjectName }}_{{ .Tag }}_checksums.txt"
  algorithm: sha256

signs:
  - cmd: cosign
    env:
      - COSIGN_EXPERIMENTAL=1
    signature: "${artifact}.sig"
    certificate: "${artifact}.pem"
    args:
      - "sign-blob"
      - "--oidc-issuer=https://token.actions.githubusercontent.com"
      - "--output-certificate=${certificate}"
      - "--output-signature=${signature}"
      - "${artifact}"
      - "--yes"
    artifacts: all
    output: true

  - artifacts: all
    signature: "${artifact}.gpgsig"
    id: gpg
    cmd: gpg
    args:
      - "--pinentry-mode"
      - "loopback"
      - "--batch"
      - "-u"
      - "{{ .Env.GPG_FINGERPRINT }}"
      - "--passphrase"
      - "{{ .Env.GPG_PASSPHRASE }}"
      - "--output"
      - "${signature}"
      - "--detach-sign"
      - "${artifact}"

nfpms:
  - file_name_template: "{{ .ProjectName }}_{{- .Tag }}_{{ .Arch }}"
    maintainer: "https://github.com/dvaumoron"
    homepage: https://github.com/tofuutils/tenv
    description: >-
      tenv helps manage several version of OpenTofu (https://opentofu.org), Terraform (https://www.terraform.io/), Terragrunt (https://terragrunt.gruntwork.io), and Atmos (https://atmos.tools/),
      tenv is the managing command and tofu and terraform are proxy commands.
    license: "Apache-2.0"
    formats:
      - deb
      - rpm
      - apk
      - archlinux
    bindir: /usr/bin
    section: default
    contents:
      - src: ./LICENSE
        dst: /usr/share/doc/tenv/copyright
        file_info:
          mode: 0444
    rpm:
      packager: tofuutils <tofuutils@gmail.com>
      signature:
        key_file: '{{ if index .Env "GPG_KEY_FILE" }}{{.Env.GPG_KEY_FILE}}{{ end }}'
    deb:
      signature:
        key_file: '{{ if index .Env "GPG_KEY_FILE" }}{{.Env.GPG_KEY_FILE}}{{ end }}'
    apk:
      signature:
        key_file: '{{ if index .Env "GPG_KEY_FILE" }}{{.Env.GPG_KEY_FILE}}{{ end }}'
    archlinux:
      pkgbase: tenv
      packager: tofuutils <tofuutils@gmail.com>

snapcrafts:
  - name: tenv
    publish: true
    summary: OpenTofu, Terraform, Terragrunt, and Atmos version manager, written in Go.
    description: |
      tenv is a versatile version manager for OpenTofu, Terraform, Terragrunt and Atmos, written in Go. 
      Our tool simplifies the complexity of handling different versions of these powerful tools, 
      ensuring developers and DevOps professionals 
      can focus on what matters most - building and deploying efficiently.
    disable: 'false'
    channel_templates:
      - 'latest/stable'
    grade: 'stable'
    confinement: strict
    license: Apache-2.0
    base: core22
    apps:
      tenv:
        plugs: ["home", "network", "network-bind"]
        command: tenv
        aliases: [ tenv ]
      tofu:
        plugs: ["home", "network", "network-bind"]
        command: tofu
        aliases: [ tofu ]
      terraform:
        plugs: ["home", "network", "network-bind"]
        command: terraform
        aliases: [ terraform ]
      terragrunt:
        plugs: ["home", "network", "network-bind"]
        command: terragrunt
        aliases: [ terragrunt ]
      tf:
        plugs: ["home", "network", "network-bind"]
        command: tf
        aliases: [ tf ]
      atmos:
        plugs: ["home", "network", "network-bind"]
        command: atmos
        aliases: [ atmos ]

aurs:
  - name: tenv-bin
    # Artifact IDs to filter for.
    # Empty means all IDs (no filter).
    ids: []
    homepage: "https://tofuutils.github.io/tenv/"
    description: "OpenTofu, Terraform, Terragrunt, and Atmos version manager, written in Go."
    maintainers:
      - "Alexander Sharov <kvendingoldo@gmail.com>"
    contributors:
      - "Alexander Sharov <kvendingoldo@gmail.com>"
    license: "Apache-2.0"
    private_key: "{{ .Env.AUR_KEY }}"
    git_url: "ssh://aur@aur.archlinux.org/tenv-bin.git"
    skip_upload: false
    provides:
      - atmos
      - tenv
      - terraform
      - terragrunt
      - tf
      - tofu
    conflicts:
      - atmos
      - atmos-bin
      - opentofu
      - opentofu-bin
      - opentofu-bin-stable
      - opentofu-git
      - terraform
      - terragrunt
      - tfenv
      - tgenv
      - tofuenv
    depends: []
    optdepends:
      - "cosign: package validation for OpenTofu"
    backup: []
    package: |-
      # bin
      install -Dm 0755 "atmos" "${pkgdir}/usr/bin/atmos"
      install -Dm 0755 "tenv" "${pkgdir}/usr/bin/tenv"
      install -Dm 0755 "terraform" "${pkgdir}/usr/bin/terraform"
      install -Dm 0755 "terragrunt" "${pkgdir}/usr/bin/terragrunt"
      install -Dm 0755 "tf" "${pkgdir}/usr/bin/tf"
      install -Dm 0755 "tofu" "${pkgdir}/usr/bin/tofu"

      # license
      install -Dm 0644 "LICENSE" "${pkgdir}/usr/share/licenses/tenv/LICENSE"
      install -Dm 0644 "LICENSE" "${pkgdir}/usr/share/doc/tenv/LICENSE"

      # readme
      install -Dm 0644 "README.md" "${pkgdir}/usr/share/doc/tenv/README.md"

      # completions
      mkdir -p "${pkgdir}/usr/share/bash-completion/completions/"
      mkdir -p "${pkgdir}/usr/share/zsh/site-functions/"
      mkdir -p "${pkgdir}/usr/share/fish/vendor_completions.d/"

      for i in bash fish zsh; do
        ./tenv completion $i > ./tenv.$i
      done

      install -Dm644 "./tenv.bash" "${pkgdir}/usr/share/bash-completion/completions/tenv"
      install -Dm644 "./tenv.zsh" "${pkgdir}/usr/share/zsh/site-functions/tenv"
      install -Dm644 "./tenv.fish" "${pkgdir}/usr/share/fish/vendor_completions.d/tenv.fish"
    commit_author:
      name: tofuutils
      email: tofuutils@gmail.com
    commit_msg_template: "Release tenv {{.Tag}}"
    goamd64: v2

    # Default: 'ssh -i {{ .KeyPath }} -o StrictHostKeyChecking=accept-new -F /dev/null'
    # git_ssh_command: "ssh -i {{ .Env.KEY }} -o SomeOption=yes"

    url_template: "https://github.com/tofuutils/tenv/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
    directory: "."

goreleaser version

2.0.1

GoReleaser Check

Search

Supporter

Code of Conduct

Additional context

Log:

• creating                                       package=tenv format=archlinux arch=arm7 file=dist/tenv_v2.1.4_arm.pkg.tar.zst
[232](https://github.com/tofuutils/tenv/actions/runs/9545648844/job/26306850074#step:7:233)
    • creating                                       package=tenv format=archlinux arch=386 file=dist/tenv_v2.1.4_386.pkg.tar.zst
[233](https://github.com/tofuutils/tenv/actions/runs/9545648844/job/26306850074#step:7:234)
    • took: 7s
caarlos0 commented 4 months ago

goamd64: v2

this should be the same as the builds, which it is not.

you can probably just remove it, as amd64 v1 is probably what you'd want

kvendingoldo commented 4 months ago

thanks! it helped!