我创建了Amazon Alexa技能,并且还向它添加了ask-cli支持。当我尝试使用ask-cli部署它时,出现了一个错误
/bin/sh: 1: hooks/pre_deploy_hook.sh: Permission denied
[Error]: Hook Scripts failed
然后,我以管理员身份打开 Powershell 并运行以下命令:
Set-ExecutionPolicy Unrestricted
此后,我成功地从系统中部署了该技能。然后,我将项目上传到gitlab,并希望在master分支中发生提交时从gitlab CI / CD进行部署。但它显示了相同的钩子脚本错误。然后,我更改了 .gitlab-ci.yml 文件,只是为了更改策略而不是部署技能。然后再次发生错误。
现在,每当在master分支中发生提交时,我想通过gitlab ci / cd部署我的技能,为此,我需要将执行策略设置为Unrestricted。请告诉我该怎么做。
答案 0 :(得分:1)
请注意,错误消息是抱怨*.sh
文件,这意味着 Unix shell脚本(通常是类似POSIX的shell,例如{{ 1}}或sh
),而 bash
仅适用于 PowerShell 脚本(Set-ExecutionPolicy
)-并且不受支持完全类似于Unix的平台。 [1]
具体来说, *.ps1
错误提示脚本文件Permission denied
不可执行 (没有executable permissions)
要使其(可由任何人)执行,请运行以下命令:
hooks/pre_deploy_hook.sh
从您的项目文件夹中。
[1]在类Unix平台上,PowerShell的执行策略不适用:好像chmod a+x .git/hooks/pre_deploy_hook.sh
策略正在生效,而这确实是Unrestricted
报告的内容。如屏幕截图所示,尝试更改策略会使Get-ExecutionPolicy
失败,而Set-ExecutionPolicy
失败。