github.com/symfony-cli/symfony-cli@v0.0.0-20240514161054-ece2df437dfa/.goreleaser.yml (about)

     1  before:
     2    hooks:
     3      - go mod download
     4  
     5  changelog:
     6    sort: desc
     7    use: github
     8    filters:
     9      exclude:
    10      - Merge branch
    11      - Merge pull request
    12  
    13  builds:
    14    - env:
    15        - CGO_ENABLED=0
    16      goos:
    17        - linux
    18        - windows
    19        - darwin
    20      goarch:
    21        - 386
    22        - amd64
    23        - arm
    24        - arm64
    25      goarm:
    26        # Because of a limitation in DEB packaging we can only build and package
    27        # a single ARMv6 or v7 variant at a single time. As ARMv6 is upwards
    28        # compatible with ARMv7 so let's only build ARMv6 here (default value
    29        # anyway)
    30        - 6
    31      ignore:
    32        - goos: windows
    33          goarch: arm
    34        - goos: windows
    35          goarch: arm64
    36        - goos: darwin
    37          goarch: 386
    38        - goos: darwin
    39          goarch: arm
    40      main: ./
    41      binary: symfony
    42      ldflags: -s -w -X 'main.channel={{ if index .Env "AUTOUPDATE_CHANNEL" }}{{ .Env.AUTOUPDATE_CHANNEL }}{{ else }}dev{{ end }}' -X 'main.buildDate={{ .Date }}' -X 'main.version={{ .Version }}'
    43      flags:
    44        - -trimpath
    45  
    46  archives:
    47    - name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}'
    48      format_overrides:
    49      - goos: windows
    50        format: zip
    51      files:
    52        - README.md
    53        - LICENSE
    54  
    55  checksum:
    56    name_template: 'checksums.txt'
    57  
    58  # create a source tarball
    59  # https://goreleaser.com/customization/source/
    60  source:
    61    enabled: true
    62  
    63  snapshot:
    64    name_template: "next"
    65  
    66  universal_binaries:
    67    - replace: true
    68      name_template: symfony
    69  
    70  # sign all artifacts
    71  # https://goreleaser.com/customization/sign
    72  signs:
    73  - cmd: cosign
    74    certificate: '${artifact}.pem'
    75    args:
    76      - sign-blob
    77      - '--output-certificate=${certificate}'
    78      - '--output-signature=${signature}'
    79      - '${artifact}'
    80      - "--yes"
    81    artifacts: all
    82    output: true
    83  
    84  release:
    85    footer: |
    86      **Full Changelog**: https://github.com/symfony-cli/symfony-cli/compare/{{ .PreviousTag }}...{{ .Tag }}
    87  
    88  brews:
    89    - repository:
    90        owner: symfony-cli
    91        name: homebrew-tap
    92        token: "{{ .Env.TAP_GITHUB_TOKEN }}"
    93      commit_author:
    94        name: Fabien Potencier
    95        email: fabien@symfony.com
    96      directory: Formula
    97      # Homebrew supports only a single GOARM variant and ARMv6 is upwards
    98      # compatible with ARMv7 so let's keep ARMv6 here (default value anyway)
    99      goarm: "6"
   100      homepage: https://symfony.com
   101      description: Symfony CLI helps Symfony developers manage projects, from local code to remote infrastructure
   102      license: AGPL-3.0
   103      test: |
   104        system "#{bin}/symfony version"
   105      dependencies:
   106      - name: git
   107        type: optional
   108      install: |-
   109        bin.install "symfony"
   110      service: |-
   111        run ["#{bin}/symfony", "local:proxy:start", "--foreground"]
   112        keep_alive true
   113  
   114  nfpms:
   115    - file_name_template: '{{ .ConventionalFileName }}'
   116      id: packages
   117      homepage: https://symfony.com
   118      description: Symfony CLI helps Symfony developers manage projects, from local code to remote infrastructure
   119      maintainer: Fabien Potencier <fabien@symfony.com>
   120      license: AGPL-3.0
   121      vendor: Symfony
   122      formats:
   123      - apk
   124      - deb
   125      - rpm
   126      recommends:
   127      - git
   128  
   129  dockers:
   130    - image_templates: [ "ghcr.io/symfony-cli/{{ .ProjectName }}:{{ .Version }}-amd64" ]
   131      goarch: amd64
   132      use: buildx
   133      build_flag_templates:
   134        - "--pull"
   135        - "--platform=linux/amd64"
   136        - "--label=org.opencontainers.image.source=https://github.com/symfony-cli/symfony-cli"
   137        - "--label=org.opencontainers.image.created={{.Date}}"
   138        - "--label=org.opencontainers.image.version={{.Version}}"
   139    - image_templates: [ "ghcr.io/symfony-cli/{{ .ProjectName }}:{{ .Version }}-arm64" ]
   140      goarch: arm64
   141      use: buildx
   142      build_flag_templates:
   143        - "--pull"
   144        - "--platform=linux/arm64"
   145        - "--label=org.opencontainers.image.source=https://github.com/symfony-cli/symfony-cli"
   146        - "--label=org.opencontainers.image.created={{.Date}}"
   147        - "--label=org.opencontainers.image.version={{.Version}}"
   148    - image_templates: [ "ghcr.io/symfony-cli/{{ .ProjectName }}:{{ .Version }}-arm32v6" ]
   149      goarch: arm
   150      goarm: '6'
   151      use: buildx
   152      build_flag_templates:
   153        - "--pull"
   154        - "--platform=linux/arm/v6"
   155        - "--label=org.opencontainers.image.source=https://github.com/symfony-cli/symfony-cli"
   156        - "--label=org.opencontainers.image.created={{.Date}}"
   157        - "--label=org.opencontainers.image.version={{.Version}}"
   158    - image_templates: [ "ghcr.io/symfony-cli/{{ .ProjectName }}:{{ .Version }}-arm32v7" ]
   159      goarch: arm
   160      # ARMv6 is upwards compatible with ARMv7
   161      goarm: '6'
   162      use: buildx
   163      build_flag_templates:
   164        - "--pull"
   165        - "--platform=linux/arm/v7"
   166        - "--label=org.opencontainers.image.source=https://github.com/symfony-cli/symfony-cli"
   167        - "--label=org.opencontainers.image.created={{.Date}}"
   168        - "--label=org.opencontainers.image.version={{.Version}}"
   169  
   170  docker_manifests:
   171    - name_template: ghcr.io/symfony-cli/{{ .ProjectName }}:{{ .Version }}
   172      image_templates: &docker_images
   173        - ghcr.io/symfony-cli/{{ .ProjectName }}:{{ .Version }}-amd64
   174        - ghcr.io/symfony-cli/{{ .ProjectName }}:{{ .Version }}-arm64
   175        - ghcr.io/symfony-cli/{{ .ProjectName }}:{{ .Version }}-arm32v6
   176        - ghcr.io/symfony-cli/{{ .ProjectName }}:{{ .Version }}-arm32v7
   177    - name_template: ghcr.io/symfony-cli/{{ .ProjectName }}:v{{ .Major }}
   178      image_templates: *docker_images
   179    - name_template: ghcr.io/symfony-cli/{{ .ProjectName }}:v{{ .Major }}.{{ .Minor }}
   180      image_templates: *docker_images
   181    - name_template: ghcr.io/symfony-cli/{{ .ProjectName }}:latest
   182      image_templates: *docker_images