Рубрики
Uncategorized

Используя действия GitHub

Изучение действий GitHub как альтернативный способ создания/тестирования и запустить информационные бюллетени по электронной почте. Tagged with Ruby, Github, DevOps, OpenSource.

В начале этого года я запустил информационный бюллетень фондового рынка под названием Бычий Анкет Я строил этот проект, чтобы быть полностью автономным, пытаясь сжать столько, сколько я могу получить от бесплатных уровней, доступных повсюду, сохраняя затраты близко к нулю, пытаясь создать полностью автоматизированный продукт Micro SaaS.

Bullish — это приложение Ruby, которое получает данные из нескольких финансов API и синтезирует их в шаблон электронной почты, сгенерированный два раза в день, который запускается в Mailerlite для доставки.

Есть много способов выполнить эту задачу и то, как я изначально решил, что это было повторно использовать Raspberry Pi, который собирал пыль для запуска проекта, и настроить задания Cron для запуска электронных писем и других задач.

Несмотря на необычную, эта конфигурация работала отлично, и рабочий процесс был плавным; Все, что мне нужно было сделать, это SSH в PI и вытащить от Master, чтобы получить последние обновления.

Со временем меня стала беспокоить пару проблем. Во -первых, использование Raspberry Pi ввело одну точку отказа в процессе, если питание вышла, например, или я был вдали от дома, и что -то пошло не так, не было никакого способа исправить это.

Другая проблема заключается в том, что я бы забыл запустить пакет для установки или обновления драгоценных камней чаще всего, чем нет.

Но наиболее связанным с безопасностью был связан с безопасностью. Бычьи хранит все свои клавиши API в файле ENV, и, хотя и не в управлении источником, эти ключи должны были быть доступны в Raspberry Pi для работы службы, и это само по себе было достаточно большой причиной, чтобы искать лучшие, более масштабируемые и бесплатное решение.

Есть много способов, которыми я мог бы решить это. Самым элегантным, вероятно, является функция Lambda, работающая по расписанию с клавишами API, управляемой службой, такой как менеджер Secrets AWS, что я все еще мог бы сделать в какой -то момент, но на этот раз я искал быструю победу.

Я использовал действия GitHub для запуска тестов на каждом толчке к мастер -филиалу, и однажды это произошло для меня, почему бы не использовать это, чтобы иметь рабочий процесс для запуска электронных писем и других задач?

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

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

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

В целом, я доволен этим решением, возможно, не определенным, но оно рассматривает большинство моих проблем, таких как:

  • Единственная точка отказа с помощью Raspberry Pi
  • Забывая обновлять PI вручную с последним кодом после толчка GIT
  • Секреты, обнаруженные в переменных окружающей среды

И в качестве бонуса вы получаете уведомление по электронной почте, если ваша работа когда -либо не выполняется, давая бесплатную видимость, которую вам иначе придется собрать себя в таких услугах, как Cron, чтобы выяснить, успешно ли работа работала или нет.

Bullish — это проект с открытым исходным кодом на GitHub Анкет

Ваше здоровье.

Оригинал: «https://dev.to/eduardosasso/exploiting-github-actions-35mk»