Windows11环境GitLab Runner执行release_job时'release-cli'未识别问题求助
解决GitLab CI中'release-cli'未识别的问题
问题场景
- 运行环境:Windows 11设备,自建GitLab服务器
- GitLab Runner配置:使用
shellexecutor,默认shell为pwsh - CI配置:
.gitlab-ci.yml中指定了registry.gitlab.com/gitlab-org/release-cli:latest镜像,触发tag构建时报错:The term 'release-cli' is not recognized as a name of a cmdlet, function, script file, or executable program
问题原因
你使用的是shell executor,这种执行模式下GitLab Runner不会拉取或使用Docker镜像,.gitlab-ci.yml中的image配置完全无效。由于你的Windows Runner机器上没有安装release-cli工具,系统无法识别该命令。
解决方案
方案1:切换到Docker Executor(推荐)
如果你的Windows机器已安装并配置Docker,可以修改Runner配置文件(通常为config.toml),将执行器切换为docker:
[[runners]] name = "Runner for ESP32 test application" url = "https://xxx.xxx.xxxxxxxx.lt/" id = 5 token = "xxxxxxxxxxxxxxxxxxx" token_obtained_at = 2023-12-11T09:30:58Z token_expires_at = 0001-01-01T00:00:00Z executor = "docker" shell = "pwsh" [runners.docker] image = "mcr.microsoft.com/powershell:latest" # 可选:设置默认镜像 [runners.cache] MaxUploadedArchiveSize = 0
修改完成后重启GitLab Runner服务,此时.gitlab-ci.yml中的image配置会生效,Runner会自动拉取release-cli镜像并在容器环境中执行任务。
方案2:在Windows Runner机器上手动安装release-cli
若无法使用Docker executor,直接在运行Runner的Windows机器上安装工具:
- 下载适配Windows 64位的
release-cli二进制文件 - 将下载的
release-cli.exe移动到系统PATH包含的目录(如C:\Windows\System32) - 打开PowerShell执行
release-cli --version,验证命令可正常运行 - 无需修改
.gitlab-ci.yml,重新触发CI任务即可
临时场景也可以在job中动态下载安装:
release_job: stage: release rules: - if: $CI_COMMIT_TAG script: # 下载release-cli到当前工作目录 - Invoke-WebRequest -Uri "https://gitlab.com/api/v4/projects/gitlab-org%2Frelease-cli/releases/latest/assets/links/release-cli-windows-amd64.exe" -OutFile release-cli.exe - .\release-cli.exe --version - echo "running release_job" release: tag_name: '$CI_COMMIT_TAG' description: '$CI_COMMIT_TAG'
内容的提问来源于stack exchange,提问作者TheBestPlayer
相关产品推荐
相关产品推荐

