Легко автоматизируйте, создавайте и тестируйте свой проект разработки на основе Redpanda с помощью Redpanda GitHub Action.

Эта запись была написана пользователем Celso Fernandes и первоначально опубликована в блоге Redpanda.

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

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

Что такое действия GitHub?

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

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

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

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

Итак, как вы его используете? Настроим вместе.

Местное развитие

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

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

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

  1. Он публикуется в теме Redpanda
  2. Он получает сообщение

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

Примечание. Всегда используйте 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/[email protected]
    	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 загрузится и будет готова к работе через несколько секунд. Это огромная победа в опыте разработчиков.

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

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

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

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

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

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

Удачного тестирования!