A solução mais rápida e fácil provavelmente seria usar um script de shell que resolva suas permissões depois de executar a descompactação.
Eu tenho um arquivo shell que é retirado do github e embutido em um zip usando o TeamCity.
Normalmente, ele é editado e colocado no github em uma máquina Windows.
Eu preciso deste script de shell para ser executável ao descompactar. Como eu faço isso? Atualmente eu tenho que fazer chmod + x blah.sh
#! /bin/bash
#First argument ($1) would be the name of the file to be unzipped
#Second argument ($2) would be where to unzip the files to (absolute path)
unzip $1 -d $2
find $2 -name *.sh -print0 | xargs -0 chmod +x
Isso funcionaria, desde que os arquivos que você queria tornar executáveis fossem sempre * .sh. Caso contrário, sempre poderia adicionar um terceiro argumento ($ 3) e substituí-lo pelo * .sh, mas você sempre teria que inserir o nome do arquivo para torná-lo executável para cada arquivo.
Você deve criar o arquivo com um zip do Unix para preservar os atributos do Unix.
Qual shell você está usando? Eu sei no bash você pode definir seus próprios comandos (via alias), por exemplo, uma vez eu fiz um comando personalizado i chamado cdsee e levou um único parâmetro (um diretório) e cd'd para ele, então ls-lah imediatamente. tornou muito fácil fazer o meu trabalho, como eu imediatamente vi o conteúdo da referida pasta.
Deveria, da mesma forma, ser possível, e até mesmo fácil, fazer um comando que rodasse o comando unzip, e imediatamente chmod + x.
Infelizmente, como puxar argumentos está me escapando no momento. Mas a resposta mais simples seria usar uma máquina linux para o zip-job de origem, ou fazer seu comando / alias personalizado executar o chmod automaticamente.