Можно ли оформить заказ хранилища Gitlab в YML, которое находится в Github? - PullRequest
0 голосов
/ 22 апреля 2020

Итак, я пытаюсь освоить развертывание с помощью Azure Devops. У меня есть это Angular приложение, сидящее в Gitlab, которое уже имеет конвейер CI / CD с кластером jenkins to kubernetes. Так что я думал сделать то же самое с Azure Devops через YAML. Что невозможно в соответствии с Azure документами непосредственно из gitlab.

Итак, я пытаюсь создать CI-конвейер из github, который занимает checkout из репозитория пользовательского интерфейса gitlab и создайте его для развертывания.

Я создал Repository Resource в моем файле YAMl ниже конвейера. Azure дай мне ошибку, сказав:

Repository JpiPipeline references endpoint https://gitlab.com/myusername/myUiRepo.git which does not exist or is not authorized for use

trigger:
  - master


resources:
  repositories:
  - repository: UiPipeline.  #alias
    type: git
    name: repository_name
    # ref: refs/heads/master  # ref name to use; defaults to 'refs/heads/master'
    endpoint: https://@gitlab.com/myusername/myUiRepo.git   # <-- Is this possible


stages:
- stage: Checkout
  jobs:
  - job: Build
    pool:
      vmImage: 'Ubuntu-16.04'
    continueOnError: true
    steps:
    - checkout: JpiPipeline
    - script: echo "hello to my first Build"

1 Ответ

1 голос
/ 23 апреля 2020

Тип репозитория gitlab пока не поддерживается в конвейере YAML. В настоящее время поддерживаются типы git, github и bitbucket, см. поддерживаемые типы .

Обходной путь для получения источников репозитория gitlab - запустить команду git внутри задач сценария.

Для приведенного ниже примера конвейера Yaml:

- checkout: none, чтобы избежать извлечения источника github.

Используйте git clone https://username:password@gitlab.com/useraccount/reponame.git, чтобы клонировать репозиторий gitlab внутри задачи скрипта.

stages:
- stage: Checkout
  jobs:
  - job: Build
    pool: 
      vmImage: 'Ubuntu-latest'
    steps:
    - checkout: none
    - script: | 
        git clean -ffdx
        git clone  https://username:password@gitlab.com/useraccount/reponame.git
         #if your password or username contain @ replace it with %40

Ваш репозиторий gitlab будет клонирован в папку $(system.defaultworkingdirectory)/reponame

Другой обходной путь - конвейер пользовательского интерфейса classi c. Тип репозитория Gitlab поддерживается в конвейере Classi c UI.

Вы можете выбрать Use the classic editor для создания конвейера classi c ui.

enter image description here

Когда вы приходите, чтобы выбрать исходную страницу. Выберите прочее git и нажмите Add connection, чтобы добавить свой URL репозитория gitlab. Затем конвейер получит источники для вашего репозитория gitlab.

enter image description here

...