无法为Gitlab CI / CD管道设置执行策略

时间:2019-08-24 09:21:01

标签: powershell gitlab-ci gitlab-ci-runner executionpolicy ask-cli

我创建了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 文件,只是为了更改策略而不是部署技能。然后再次发生错误。

Error Screenshot

现在,每当在master分支中发生提交时,我想通过gitlab ci / cd部署我的技能,为此,我需要将执行策略设置为Unrestricted。请告诉我该怎么做。

1 个答案:

答案 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失败。