windows - 尝试通过 GitLab Runner 脚本访问网络驱动器但出现错误

标签 windows gitlab gitlab-ci gitlab-ci-runner

我正在使用 GitLab 的 CI 组件,但收到此错误:

The system cannot find the path specified.

当我尝试访问脚本中的映射网络驱动器时。当尝试从我的电脑(运行该服务的同一台电脑)正常访问驱动器时,我可以看到所有映射的驱动器。

这是 .gitlab-yml 中的脚本:

variables:
  PROJECT_NAME: "TestApp"
  STAGING_PATH: X:\some\network\location\%PROJECT_NAME%
stages:
  - build
  - deploy
build:
  stage: build
  script:
  - echo "starting build for %PROJECT_NAME% at %TIME%"
  ...
  artifacts:
    name: "%PROJECT_NAME%"
    paths:
      - '%PROJECT_NAME%/bin/Release'
    expire_in: 1 week
deploy:
  stage: deploy
  script:
    - echo "Deploy to staging server"
    - dir "X:"  << ERROR HAPPENS HERE
    - net use
  dependencies:
    - build
  environment:
    name: staging
  only:
  - master

我已使用 net use 命令列出它可以看到的网络位置,但该列表也是空的。有什么方法可以让 gitlab-runner 看到这些网络位置吗?

我使用的运行程序是一个 Windows 二进制文件 here 。配置toml文件是:

concurrent = 1
check_interval = 0

[[runners]]
  name = "Haroon-PC"
  url = "http://ae-ubuntu/"
  token = "fd84211a6d37d88d4903317c85ce7a"
  executor = "shell"
  [runners.cache]

最佳答案

gitlab-runner 服务的内置系统帐户(默认)无权访问外部网络驱动器。

您必须使用有权访问网络驱动器的用户帐户运行 gitlab-runner 服务。启动服务时,请按照“使用用户帐户运行服务”下的说明进行操作。

https://docs.gitlab.com/runner/install/windows.html

关于windows - 尝试通过 GitLab Runner 脚本访问网络驱动器但出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51382301/

相关文章:

database - 如何在一个由多个应用程序组成的平台上实现持续交付,这些应用程序都依赖于一个数据库并且相互依赖?

continuous-integration - 使用部署 token 发布到 Gitlab 包注册表

docker - 通过 Gitlab CI/CD 将 docker 服务部署到自己的服务器的正确方法

gitlab-ci - 如何让 gitlab CI 作业仅在分支上手动触发并始终在 master 上自动触发?

git - 作为 npm 依赖项的私有(private) Typescript 库

docker - Gitlab CI 服务访问

c++ - Visual C++ 有 __builtin_constant_p() 吗?

python - 在 Windows 中选择全部并复制的最有效方法

c - SetConsoleCursorPosition : Getting black rows in console upon use

linux - 使用 SFTP 在基于 Windows 的服务器(主机)和 Linux 服务器(客户端)之间进行同步