goreleaser: zip archive doesn't preserve executable flag

Prerequisites

  • Are you running the latest version?

    goreleaser version 0.45.0, commit fcbdaf32c8ee377c2ae8c4c4dae8e7309a7c3ba0, built at 2018-01-19T10:42:08Z
    
  • Did you perform a search to see if this problem was already reported?

For more information, see the CONTRIBUTING guide.

Description

Using:

  archive:
    format: zip

The zip doesn’t preserve the executable flag.

Environment

Please paste the output of:

  • go version

    go version go1.9.2 darwin/amd64
    
  • uname -a

    Darwin nicerobot.local 17.3.0 Darwin Kernel Version 17.3.0: Thu Nov  9 18:09:22 PST 2017; root:xnu-4570.31.3~1/RELEASE_X86_64 x86_64
    
  • goreleaser --debug

   • releasing...             
   • loading config file       file=.goreleaser.yml
   • loaded config file        config={lambda-go-samples {nicerobot/lambda-go-samples %!s(bool=true) %!s(bool=false)  map[]} { { }     []  []   %!s(bool=false)  map[]} [{[darwin linux] [amd64] [] []    lambda-go-samples {  map[]} [] map[]}] {{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }} map[windows:Windows 386:i386 amd64:x86_64 darwin:Darwin linux:Linux] zip [{windows zip map[]}] %!s(bool=false) [] map[]} { map[] [] [] []       map[] map[]} { map[]      map[] map[]} { map[]} {{{ .ProjectName }}_checksums.txt map[]} [] [] {{[docs Merge pull request Merge branch] map[]} asc map[]}  { []  } {[] [] [] []     {  map[]} [] map[]} {  } map[]}
   • parallelism: 4           
   • SETTING DEFAULTS FOR:    
      • snapshoting              
      • releasing to GitHub      
      • creating archives        
      • building binaries        
      • creating Linux packages with fpm
      • creating Linux packages with snapcraft
      • calculating checksums    
      • signing artifacts        
      • creating Docker images   
      • releasing to Artifactory 
      • creating homebrew formula
   • CHECKING ./DIST          
      • ./dist is not empty       files=%!s(int=5)
   ⨯ release failed after 0.00s error=dist is not empty, remove it before running goreleaser or use the --rm-dist flag

Steps to Reproduce

  1. goreleaser --rm-dist --skip-publish --skip-validate
...
• CREATING ARCHIVES                                                                  
   • creating                  archive=dist/lambda-go-samples_Linux_x86_64.zip
   • creating                  archive=dist/lambda-go-samples_Darwin_x86_64.zip
   • added new artifact        name=lambda-go-samples_Linux_x86_64.zip path=dist/lambda-go-samples_Linux_x86_64.zip type=UploadableArchive
   • added new artifact        name=lambda-go-samples_Darwin_x86_64.zip path=dist/lambda-go-samples_Darwin_x86_64.zip type=UploadableArchive
...
  1. unzip dist/lambda-go-samples_Linux_x86_64.zip

Expected behavior: [What you expected to happen]

lambda-go-samples is executable

Actual behavior: [What actually happened]

lambda-go-samples is not executable

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 17 (10 by maintainers)

Commits related to this issue

Most upvoted comments

actually the PR linked has nothing to do with this one haha

@nicerobot should be good now, thanks for reportign!