gitlab-ci - 如何阻止 robocopy 退出构建?

标签 gitlab-ci gitlab-ci-runner

我正在使用 Gitlab 8.15.4 和该版本的最新运行程序。由于我们的防火墙,我无法运行 npm install,所以我将节点模块从另一个位置复制到构建文件夹中。运行者在 Windows 7 机器上。

我的第一次尝试:
(.gitlab-ci.yml)

before_script:
- robocopy S:\Storage\GitLab-Runner\Assets\node_modules .\node_modules /s
build:
  stage: build
  script:
    - echo starting
    - gulp
    - echo done
  artifacts:
    paths:
    - deploy.zip   

构建失败并出现错误:

ERROR: Job failed: exit status 1



我的第二次(第 n 次)尝试将 robocopy 放入脚本文件并从那里执行:

(.gitlab-ci.yml)
before_script:
- S:\Storage\GitLab-Runner\Scripts\CopyAssets.bat
build:
  stage: build
  script:
    - echo starting
    - gulp
    - echo done
  artifacts:
    paths:
    - deploy.zip   

(复制 Assets .bat)
robocopy S:\Storage\GitLab-Runner\Assets\node_modules .\node_modules /s
set/A errlev="%ERRORLEVEL% & 24"
exit/B %errlev%     

通过但不执行任何其他步骤。

如何防止 RoboCopy 在构建完成时退出构建?

最佳答案

对于 powershell 用户:

(robocopy src dst) ; if ($lastexitcode -lt 8) { $global:LASTEXITCODE = $null }
或者
cmd /c (robocopy src dst) ^& IF %ERRORLEVEL% LEQ 1 exit 0
我已经使用 GitLab Runner powershell 在 GitLab 13.12 上进行了测试,它运行良好。

关于gitlab-ci - 如何阻止 robocopy 退出构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44504795/

相关文章:

GitLab runner 无法通过 http 克隆存储库

gitlab - .gitlab-ci.yml 中的 `cache:key` 有什么意义?

node.js - 通过 UI 设置 Gitlab CI/CD 环境变量

go - gitlab-ci 中的全局 GOPATH

gitlab - 未在 GitLab CICD 的工作流程中设置变量

java - 是否可以在不使用 docker 的情况下使用 gitlab-ci 将简单的 java web 应用程序部署到本地服务器?

组下所有项目的Gitlab API

gitlab - gitlab 如何决定使用哪个 runner 来完成工作

Gitlab CI 构建失败 gitlab-runner-prebuilt.tar.xz : no such file or directory