Jenkins конвейер, как перейти в другую папку и запустить npm тесты - PullRequest
0 голосов
/ 28 марта 2020

В настоящее время я использую сценарий конвейера Jenkins.

Для запуска моих тестов мне нужен доступ к моему коду, который находится на рабочем столе.

Я попробовал это:

pipeline {
  agent any

  tools {nodejs "node"}

  stages {
    stage('Tests') {
      steps {
        sh 'cd users/tests/'
        sh 'npm run shopfloor.shopfloor'
      }
    }
  }
}

Как я могу перейти в свою тестовую папку и затем запустить "npm run test"

Я попробовал ответ ниже, однако я получаю эту ошибку сейчас:

Running in users/tests/
[Pipeline] {
[Pipeline] sh
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Operation not permitted
+ npm run shopfloor.shopfloor
job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: Operation not permitted
Error: EPERM: operation not permitted, uv_cwd
    at process.wrappedCwd (internal/bootstrap/switches/does_own_process_state.js:129:28)
    at process.cwd (/Users/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:10:19)
    at Conf.loadPrefix (/Users/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node/lib/node_modules/npm/lib/config/load-prefix.js:46:24)
    at load_ (/Users/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node/lib/node_modules/npm/lib/config/core.js:109:8)
    at Conf.<anonymous> (/Users/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node/lib/node_modules/npm/lib/config/core.js:96:5)
    at Conf.emit (events.js:315:20)
    at ConfigChain._resolve (/Users/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node/lib/node_modules/npm/node_modules/config-chain/index.js:281:34)
    at ConfigChain.add (/Users/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node/lib/node_modules/npm/node_modules/config-chain/index.js:259:10)
    at Conf.add (/Users/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node/lib/node_modules/npm/lib/config/core.js:338:27)
    at Conf.<anonymous> (/Users/.jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node/lib/node_modules/npm/lib/config/core.js:314:25)
internal/bootstrap/switches/does_own_process_state.js:129
    cachedCwd = rawMethods.cwd();

Ответы [ 2 ]

2 голосов
/ 28 марта 2020

Используйте dir шаг для переключения каталога и выполнения команд в этом контексте:

pipeline {
  agent any

  tools {nodejs "node"}

  stages {
    stage('Tests') {
      steps {
        dir('users/tests/') { // <<------------
          sh 'npm run shopfloor.shopfloor'
        }
      }
    }
  }
}
1 голос
/ 28 марта 2020

Попробуйте один раз использовать двойные кавычки.

dir ("папка")

in groovy Одиночные кавычки являются стандартной Java строкой, в то время как двойные кавычки являются временной строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...