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

Unable to Set Execution Policy for Gitlab CI/CD Pipeline

我创建了一个 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 部署它。但它显示了相同的 hook script 错误。然后,我更改了我的 .gitlab-ci.yml 文件,仅更改策略而不部署技能。然后又出错了。

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

请注意,错误消息是 抱怨 *.sh 文件,暗示 Unix shell 脚本 (通常是 POSIX-like shell,例如 shbash),而 Set-ExecutionPolicy 仅适用于 PowerShell 脚本 (*.ps1) - 在类 Unix 平台上完全不受支持。[1]

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

为了使其可执行(任何人),运行 类似于:

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,如您的屏幕截图所示。