Зал слияния другой ветви - PullRequest
0 голосов
/ 19 ноября 2018

Я пытаюсь автоматизировать развертывание с помощью Concourse-CI.

У меня есть приложение go, которое зарегистрировано в локальном Gitlab с двумя ветвями (мастер и разработка).

У меня есть конвейерная установка для ветви разработки, которая запускает модульные тесты, и если они проходят, я хочу автоматически объединить изменения из ветви разработки в главную ветку и добавить к ней последнюю версию.

Вот что у меня есть:

jobs:
- name: run-unit-tests
  public: true
  plan:
  - get: source-master
  - get: source
    trigger: true
  - put: discord
    params:
      channel: "((channel_id))"
      color: 6076508
      title: Concourse CI
      message: |
        Starting Unit tests for manageGameData
  - task: task-unit-tests
    file: source/ci/tasks/task-unit-tests.yml
    on_success:
      do:
        - put: discord
          params:
            channel: "((channel_id))"
            color: 6076508
            title: Concourse CI
            message: |
              All Unit tests passed for manageGameData
        - put: version
          params: 
            bump: minor
        - get: version
        - put: source-master
          params:
            merge: source
            repository: source-master
            tag: version/number

Проблема в том, что это только помечает основную ветку новой версией.

Есть ли способ объединить ветвь разработки с мастером?

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

В качестве альтернативы вы можете использовать только скрипты для более сложных команд git.

 platform: linux

image_resource:
  type: docker-image
  source:
    repository: concourse/buildroot
    tag: git
    run:
      path: /bin/bash
      args:
      - -c
      - |
        set -eux

    git clone https://user:passw@repo.git

    git config --global user.name "UserName"

    git config --global user.email "email@your.com"

    git checkout master

    git merge hotfix
0 голосов
/ 21 ноября 2018

Наверное, я сначала не понимал документацию, но ответ был довольно прост.

- get: source-master
- get: source
- put: source-master
  params:
    repository: source

Сначала вы должны освоить обе ветви в этом случае и развиваться. Затем вы помещаете исходное локальное хранилище (папку на рабочем столе) в мастер, используя put.

Нет необходимости в параметре слияния, и у меня был неправильный параметр репозитория.

Надеюсь, это поможет кому-то еще.

...