DevOps & CI/CD

GitHub

Крупнейший хостинг Git-репозиториев с pull request'ами, встроенным CI (GitHub Actions) и AI-ассистентом Copilot.

Что такое GitHub

GitHub (гитхаб) — веб-платформа для хостинга Git-репозиториев. Git работает локально и умеет обмениваться коммитами с удалёнными копиями; GitHub предоставляет такую копию в облаке плюс всё, чего в самом Git нет: веб-интерфейс, обсуждение кода, задачи, CI, права доступа.

Важно не путать: Git — это система контроля версий, GitHub — сервис, который её хостит. Git можно использовать без GitHub, GitHub без Git — нет.

Основан в 2008 году, с 2018 принадлежит Microsoft. Крупнейшая площадка open source: большинство публичных проектов живёт именно там.

Что даёт GitHub поверх Git

  • Remote-репозиторий — общая точка синхронизации для команды.
  • Pull request (PR) — предложение влить ветку с обсуждением, дифом и code review. Центральный рабочий объект GitHub.
  • Issues — задачи и баги, связываемые с коммитами и PR.
  • Actions — встроенный CI/CD.
  • Packages / Container registryхранилище образов ghcr.io.
  • Branch protection — запрет push в main мимо PR и «красных» тестов.

Что такое GitHub Actions

GitHub Actions — встроенный сервис CI/CD. Pipeline описывается YAML-файлом в .github/workflows/, запускается по событию (push, PR, cron, ручной триггер) и выполняется на runner'е — виртуальной машине GitHub или своей.

name: ci
on:
  push:
    branches: [main]
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12'
      - run: pip install -r requirements.txt
      - run: pytest -q

  build:
    needs: test
    runs-on: ubuntu-latest
    permissions:
      packages: write
    steps:
      - uses: actions/checkout@v4
      - uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - run: |
          docker build -t ghcr.io/${{ github.repository }}:${{ github.sha }} .
          docker push ghcr.io/${{ github.repository }}:${{ github.sha }}

Главное отличие от конкурентов — marketplace готовых actions (actions/checkout, docker/build-push-action и тысячи других) вместо написания шагов с нуля.

Self-hosted runner

Стандартные runner'ы GitHub не дают GPU и ограничены по времени job. Для сборки CUDA-образов или тестов инференса подключают свой runner на GPU-инстансе:

# на своём сервере
./config.sh --url https://github.com/ORG/REPO --token <TOKEN> --labels gpu
./run.sh
jobs:
  bench:
    runs-on: [self-hosted, gpu]

Что такое GitHub Copilot

GitHub Copilot — платный AI-ассистент: дополняет код прямо в IDE, отвечает на вопросы по репозиторию, предлагает правки в PR. Работает на LLM, обученных в том числе на публичном коде. Это отдельная подписка, к самому Git и хостингу отношения не имеет.

GitHub vs GitLab vs Bitbucket

GitHub GitLab Bitbucket
Публичный open source Крупнейшая площадка Есть Редко
CI Actions + marketplace GitLab CI, зрелый Pipelines, простой
Self-hosted GitHub Enterprise Server (платно) Community Edition (бесплатно) Data Center (платно)
Экосистема Максимальная Всё в одном продукте Связка с Jira

Связанные термины

  • Git — система контроля версий, которую хостит GitHub
  • Git-репозиторий — то, что вы там храните
  • GitLab — основной конкурент с self-hosted-версией
  • CI/CD — практика, которую реализуют Actions
  • Code review — то, ради чего существуют pull request'ы
  • Open Source — среда, в которой вырос GitHub

Готовы запустить GPU-задачу?

Запустить GPU-сервер