Рубрики
Uncategorized

Бегуны gitlab как услуга с действием GitHub

TL; DR; Эта статья покажет, как реализовать действие «Действие службы Gitlab Runner» в «GitHub … Tagged with Gitlab CI, CI CD, DevOps, Github Deciates.

TL; DR; В этой статье будет показано, как реализовать действие «Действие службы Gitlab Runner» в «рабочем процессе Github», который запускается «заданием Gitlab-Ci», и таким образом, имеющие временные бегуны Gitlab, размещенные Github.

Для получения дополнительной информации о GitHub Workflow , проверьте официальный документация

Для получения дополнительной информации о Gitlab-ci , проверьте официальный документация

Шаги

Шаг 1

Создайте новый репозиторий GitHub со следующим рабочим процессом GitHub. Расположение файла: .github/workflows/gitlab-runner.yaml

name: Gitlab Runner Service
on: [repository_dispatch]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Maximize Build Space
        uses: easimon/maximize-build-space@master
        with:
          root-reserve-mb: 512
          swap-size-mb: 1024
          remove-dotnet: 'true'
          remove-android: 'true'
          remove-haskell: 'true'

      - name: Gitlab Runner
        uses: edersonbrilhante/gitlab-runner-action@main
        with:
          registration-token: "${{ github.event.client_payload.registration_token }}"
          docker-image: "docker:19.03.12"
          name: ${{ github.run_id }}
          tag-list: "crosscicd"

Что делает этот рабочий процесс?

Этот рабочий процесс будет работать как раз при запуска Event Repository_Dispatch. Первым шагом будет увеличение свободного пространства, удаляя бесполезные пакеты для нашего бегуна Gitlab. И второй шаг запустит действие, которое регистрирует нового бегуна Gitlab с тегом CrossCiCD , так что запустите это и не регистрируйте его после того, как работа Gitlab-Ci завершена с успехом или неудачей.

Шаг 2

Создайте новый репозиторий Gitlab со следующей конфигурацией Gitlab-Ci. Расположение файла: .gitlab-ci.yml

start-crosscicd:
  image: alpine
  before_script:
    - apk add --update curl && rm -rf /var/cache/apk/*
  script: |
    curl -H "Authorization: token ${GITHUB_TOKEN}" \
    -H 'Accept: application/vnd.github.everest-preview+json' \
    "https://api.github.com/repos/${GITHUB_REPO}/dispatches" \
    -d '{"event_type": "gitlab_trigger_'${CI_PIPELINE_ID}'", "client_payload": {"registration_token": "'${GITLAB_REGISTRATION_TOKEN}'"}}'

github:
  image: docker:latest
  services:
    - name: docker:dind
      alias: thedockerhost
  variables:
    DOCKER_HOST: tcp://thedockerhost:2375/
    DOCKER_DRIVER: overlay2
    DOCKER_TLS_CERTDIR: ""
  script:
    - df -h
    - docker run --privileged ubuntu df -h
  tags:
    - crosscicd

Что это делает Gitlab-Ci?

Работа Start-Crosscicd запустит рабочий процесс GitHub, создав бегуна Gitlab с тегом CrossCiCD . И работа GitHub Буду ждать бегуна с тегом CrossCiCD .

Шаг 3

Установите Envvars в новом репозиторе Gitlab

    GITHUB_REPO:/
    GITHUB_TOKEN:
    GITLAB_REGISTRATION_TOKEN:

Как создать новый токен GitHub Access:

Как получить токен регистрации:

  • Перейти к https://gitlab.com///-/Settings/ci_cd и нажмите и разверните Бегуны

  • Скопируйте токен регистрации

Где хранить Envvars?

  • Перейти к https://gitlab.com///-/Settings/ci_cd и нажмите и разверните Переменные

  • Нажмите в добавление переменной и сохраните ее для каждого Envvar

Шаг 4

Теперь ваш трубопровод готов запустить бегун Gitlab в Github Trigger от gitlab-ci работа:)

Пример

Видео демонстрация

Скриншоты

Job Start-Crosscicd Trigger GitHub Workflow

Рабочий процесс, вызванный gitlab-ci Job

По умолчанию есть 17 ГБ бесплатно

После максимизации у нас есть 54 ГБ бесплатно для использования

Зарегистрируйте бегуна, запустите его и не регистрируйте после завершения работы в Гитлабе

Код

Вот и все!

Если у вас есть какие -либо вопросы, оставьте здесь комментарий или пинг меня на 🔗 LinkedIn Анкет

Оригинал: «https://dev.to/edersonbrilhante/gitlab-runners-as-a-service-with-github-action-149n»