2

我已经创建了一个 Amazon Alexa Skill,并且我还添加了 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文件,仅更改策略而不部署技能。然后又出现了错误。

错误截图

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

4

1 回答 1

1

请注意,错误消息是在抱怨*.sh文件,暗示Unix shell 脚本(通常是类似 POSIX 的 shell,例如shor bash),而Set-ExecutionPolicy仅适用于PowerShell脚本 ( *.ps1) - 并且在类 Unix 平台上根本不支持. [1]

具体来说,错误Permission denied表明脚本文件hooks/pre_deploy_hook.sh 不可执行(没有可执行权限)。

要使其可执行(任何人),请运行以下命令:

chmod a+x .git/hooks/pre_deploy_hook.sh

从您的项目文件夹中。


[1] 在类 Unix 平台上,PowerShell 的执行策略不适用:在 Windows 术语中,就好像该Bypass策略生效(即使Get-ExecutionPolicy报告Unrestricted)。如您的屏幕截图所示,尝试设置策略会Set-ExecutionPolicy失败,并显示 。Operation is not supported on this platform

于 2019-08-24T13:42:35.027 回答