Не удается получить ветку git из yml-скрипта конвейера bitbucket

#git #bitbucket #bitbucket-pipelines

#git #bitbucket #bitbucket-конвейеры

Вопрос:

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

В качестве первого шага я попытался выполнить промежуточную проверку и потерпел неудачу: у меня есть следующая конфигурация в bitbucket-pipelines.yml

 merge:
- step:
    name: merge with staging
    image: node:8
    script:
    - git remote update
    - git fetch origin
    - git branch -f staging origin/staging
    - git checkout staging
  

ошибка:

   git branch -f staging origin/staging
fatal: Not a valid object name: 'origin/staging'.
  

Я перепробовал множество других вариантов, которые работают локально, но все терпит неудачу… похоже, bitbucket ограничивает доступ к другим ветвям..

Каков правильный способ проверки ветвей в конвейерах bitbucket?

Ответ №1:

Перед командой fetch вам необходимо настроить ее с помощью этого:

 - git config remote.origin.fetch " refs/heads/*:refs/remotes/origin/*"
  

Ответ №2:

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

 name: Build and test on QA env
image: node:8
script:
  - git fetch origin
  - git pull --rebase origin staging --verbose
  - npm ci
  - npm test
  - npm run build
  

с другой стороны, это не отвечает на заданный вопрос, поэтому я оставляю это «открытым» на данный момент