Использование GitHub Actions для автоматизации разработки

Если вы уже используете Redpanda, то вы знаете, что одной из самых привлекательных ее особенностей является стремление сделать работу по разработке потоков данных как можно более простой. (И, если вы еще не используете Redpanda, вы можете узнать, как мы обеспечиваем эту простоту в этой статье блога).

Презрев сложность, логичным следующим шагом было создание простого и эффективного способа автоматизации и тестирования сборок, которые зависят от Redpanda. В этом посте мы покажем вам, как это сделать, используя Redpanda GitHub Action.

Что такое GitHub Actions?

Прежде чем перейти к тестированию нашего кода, стоит понять, что такое GitHub Action. Согласно сайту GitHub, «GitHub Actions позволяет легко автоматизировать все ваши программные рабочие процессы».

В нашем случае мы сосредоточимся на процессе непрерывной интеграции, чтобы мы могли запускать автоматизированные тесты на GitHub CI. После того, как вы запустили свой код и работаете с Redpanda на локальной среде разработки, как вы можете гарантировать, что ваши товарищи по команде не внесут ломающие изменения в код? Запуск автоматизированных тестов на CI позволит убедиться, что все работает так, как ожидается.

Иногда имеет смысл изолировать сторонние зависимости в архитектуре программного обеспечения, но что если мы хотим провести тестирование на реальном экземпляре Redpanda? Это основная причина, по которой был создан Action: принести всю мощь Redpanda в среду GitHub CI. Это делает набор тестов быстрее и надежнее.

Даже если вы не используете Redpanda в своей производственной среде, вы можете извлечь выгоду из ее замены для других Apache Kafka. и воспользоваться преимуществами более быстрой загрузки и меньшего использования оперативной памяти. Redpanda GitHub Action означает экономию минут сборки (и затрат на CI) при его использовании.

Так как же его использовать? Давайте настроим его вместе.

Локальная разработка

Оговорка: Язык Ruby — это совершенно произвольный выбор. Вы можете писать код на любом языке, который вам больше нравится.

Весь код, обсуждаемый здесь, доступен в репозитории Redpanda-action-demo.

Здесь у нас есть набор тестов, который выполняет два теста:

  1. Публикует сообщение в тему Redpanda.
  2. Извлекает сообщение.

Оба теста поддерживаются установкой, которая подключается к Redpanda с помощью гема ruby-kafka.

Примечание: Всегда используйте localhost:9092 в качестве адреса Redpanda. Это работает локально, и GitHub CI запустит образ Docker и привяжет его порт к 9092.

Непрерывная интеграция

Чтобы использовать Redpanda GitHub Action, вам нужно будет настроить GitHub CI для запуска теста. Это настраивается в .github/workflows/ci.yml. Вот его содержание, о котором мы подробнее поговорим ниже:

# the name of our job
name: CI

# yes, we want to run for all branches and pull requests
on:
  push:
    branches: "*"
  pull_request:
    branches: "*"

# we have just our job `test`
jobs:
  test:
    runs-on: ubuntu-latest
    # here is the main section for us, where we spin up the Redpanda instance
    # using the Redpanda GitHub action,pay attention on the `.with.version` key, we are using _latest_ but you can use any Redpanda version
    # tip: version is exactly the same as the Redpanda docker image
    steps:
    - name: start Redpanda
        uses: Redpanda-data/github-action@v0.1.3
        with:
        version: "latest"
    - uses: actions/checkout@v2
    # below is how we setup ruby and run the tests using `rake`
    - name: Set up Ruby
        uses: ruby/setup-ruby@359bebbc29cbe6c87da6bc9ea3bc930432750108
        with:
        ruby-version: '3.0'
        bundler-cache: true
    - name: Install dependencies
        run: bundle install
    - name: Run tests
        run: bundle exec rake
Войти в полноэкранный режим Выйти из полноэкранного режима

После фиксации этого файла и переноса его в ветку, GitHub CI автоматически запустит набор тестов и предоставит вам обратную связь об изменениях в вашем запросе, показывая, был ли тест неудачным или успешным.

Использование Redpanda GitHub Action — это простой способ тестирования проектов на базе Kafka. Он прост, использует всего один образ Docker со всем необходимым. Нет ни JVM, ни Zookeeper…: это решение «все в одном». И это супер быстро! Redpanda загрузится и будет готова к работе через несколько секунд. Это огромный выигрыш в опыте разработчика.

Если сравнивать с популярным Docker-образом Kafka, Redpanda GitHub Action предлагает меньшее использование оперативной памяти (47 МБ против 465 МБ) и меньший размер Docker-образа (всего 130 МБ против 465 МБ). Учитывая, что GitHub Actions тарифицируется по минутам использования, чем меньше площадь, тем дешевле запуск тестов.

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

Как вы будете использовать Redpanda GitHub Action?

Мы хотим услышать, как вы используете ваши новообретенные знания о Redpanda Action на Github CI. Присоединяйтесь к сообществу Slack, чтобы поделиться своими идеями и опытом, и ознакомьтесь с документацией Redpanda для получения информации о других вещах, которые вы можете сделать с Redpanda и вашими приложениями.

Для получения дополнительной информации о Redpanda GitHub Action, или чтобы сообщить о проблеме, пожалуйста, посетите репозиторий GitHub для проекта.

Вы также можете посетить репозиторий для демонстрации в этой статье, где вы найдете код из этой статьи и пример тестового набора, который использует Github Action в реальном сценарии.

Счастливого тестирования!

Оцените статью
devanswers.ru
Добавить комментарий