Файл Дженкинса, Создающий Организацию с Нуля, Терпит неудачу

#continuous-integration #jenkins-pipeline #salesforce #bitbucket

Вопрос:

Я пытаюсь создать непрерывную интеграцию между BitBucket и Salesforce с помощью Дженкинса, и у меня возникли проблемы с созданием Scratch Org. Файл Дженкинса, который Я СЧИТАЮ, настроен правильно. Вот он:

 node {  def SF_JENKINSUSER = env.SF_JENKINS_USER def SF_USERNAME = env.SF_JENKINS_USER   '.'   env.SF_DEV def SF_URL = env.SF_TESTURL def SF_PROD = env.SF_PRODURL def SF_DEV_HUB = env.SF_DEVHUB  stage('Checkout Source') {  checkout scm }  withEnv(["HOME=${env.WORKSPACE}"]) {   withCredentials([string(credentialsId: 'SF_CONSUMER_KEY_BIND', variable: 'SF_CONSUMER_KEY'), file(credentialsId: 'SERVER_KEY_CREDENTALS_ID', variable: 'server_key_file')]) {  stage('Authorize DevHub Org') {  try {  rc = command "sfdx force:auth:jwt:grant -r ${SF_PROD} -i ${SF_CONSUMER_KEY} -u ${SF_JENKINSUSER} -f ${server_key_file} --setdefaultdevhubusername -a ${SF_DEV_HUB}"  if ( rc != 0 ) {  echo '========== ERROR: '   rc  error 'Salesforce org authorization failed.'  }  else {  command "sfdx force:org:list"  echo '========== LOGGED IN =========='  }  }  catch (err) {  echo "========== DEVHUB AUTHORIZATION FAILURE: ${err} =========="  }   }   // Create a new scratch org to test the repo  stage('Create Test Scratch Org') {  try {  rc = command "sfdx force:org:create -s -f config\project-scratch-def.json -a TestScratch -w 10 -d 1"  if (rc != 0) {  error 'Salesforce test scratch org creation failed.'  }  }  catch (err) {  echo "========== SCRATCH ORG CREATION FAILURE: ${err} =========="  }   }  }  } }  def command(script) { if ( isUnix() ) {  return sh(returnStatus: true, script: script); }  else {  return bat(returnStatus: true, script: script); }  

Приносим извинения за форматирование. Теперь, результаты этого я не могу понять. Он говорит, что состояние подключения организаций-это JwtGrantFailure, и он ищет файл server.key вместо файла json в командной строке. Вот соответствующие части результатов этой работы:

 E:DevOps_RootJENKINSworkspaceTestingCIPipeline2gt;sfdx force:org:list  === Orgs  ALIAS USERNAME ORG ID CONNECTED STATUS (D) DevHub sa.jenkins@[...].com 00D300000000UicEAE JwtGrantError    No active scratch orgs found. Specify --all to see all scratch orgs [Pipeline] echo ========== LOGGED IN ========== [Pipeline] } [Pipeline] // stage [Pipeline] stage [Pipeline] { (Create Test Scratch Org) [Pipeline] isUnix [Pipeline] bat  E:DevOps_RootJENKINSworkspaceTestingCIPipeline2gt;sfdx force:org:create -s -f configproject-scratch-def.json -a TestScratch -w 10 -d 1  ERROR running force:org:create: ENOENT: no such file or directory, open  'E:DevOps_RootJENKINSworkspacePipe@tmpsecretFilese0ab232f-1958-42d1-b3bb-aed5e00a562fserver.key' [Pipeline] echo ========== SCRATCH ORG COMMAND FAILURE: 1  

Зачем заданию искать файл server.key, если я уже успешно запустил withCredentials? Что я здесь упускаю?

Любые идеи будут высоко оценены.

Ответ №1:

Хорошо, так что … это на какое-то время сбило меня с толку, но я, наконец, получил сценарий для создания новой организации.

Я вошел на виртуальный сервер Дженкинса через подключение к удаленному рабочему столу, открыл проводник Windows, перешел в папку Jenkins User .sfdx и удалил следующие файлы:

 alias.json key.json user@domain.json stash.json  

После этого я внес некоторые обновления в файл Дженкинса и перенес изменения в репозиторий. Задание было выполнено, и была создана Новая организация.

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

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