- Введение
- Цель
- Berkshelf.
- Шаги для создания действий GitHub
- Рабочий процесс действий Github объяснил
- Список используемой литературы
Введение
Я предполагаю, что целевая аудитория для этой статьи, как ожидается, имеет базовое понимание GitHub в качестве инструмента управления источником. Также эта статья предназначалась для Chef Cookbook Devops Developers, стремясь получить представление о реализации непрерывного потока интеграции для кулинарных книг шеф-поваров с использованием действий GitHub.
Цель
- Кулинарные книги CODE REPO имеет кулинарные книги обертки шеф-поваров для Apache и Windows
- Развертывание шеф-повара можно сделать двумя способами, используя 1. Berkshelf, 2. Политика
- Berkfhelf немного более старый стиль развертывания, где, как, развертывание политики новая способ выполнения развертывания шеф-повара
- Я подобрал Berkfhelf Way для этого репо
Berkshelf.
- Используется BerksFile для создания контента REPO, Cookbooks Reppo содержит кулинарные книги и все это Inter-зависимые поваренные книги, которые готовы к упаковке для хранения в артефакте или могут быть загружены на сервер Chef.
- Прочитайте эту статью в документации по поварам, чтобы узнать больше о, Как работает Berkfhelf?
Шаги для создания действий GitHub
- Под репозиторий кода GitHub я выбрал
Действиявкладка - Выбрал
Новый рабочий процесс - Тогда выбрал
Настройте рабочий процесс самостоятельно - Код YAML ниже будет рабочем процессом GitHub Action CI для поваренных книг репозиторий
name: Build-Package Chef Cookbooks
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up Ruby 2.6
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Setup Gem Files
run: |
bundle install --jobs 4 --retry 3 # Install berks gem
- name: Run Code Analysis using cookstyle
run: |
echo `pwd`
echo "\n"
chmod +x sca.sh
./sca.sh
- name: Build and Bundle Cookbooks and dependencies
run: |
echo `pwd`
echo "\n"
chmod +x berks-vendor.sh
echo `ls -l`
./berks-vendor.sh # Berks vendor cookbooks
- name: Package cookbooks to upload to artifact repo or Upload cookbook Chef server using berks upload
run: |
echo "package cookbooks dumped in the `cookbook_cache` directory and store it to artifact repo, or upload cookbooks to Chef server using 'berks upload' command"
Рабочий процесс действий Github объяснил
- Рабочий процесс, который я создал для этого репо, является пользовательским рабочим процессом, лучше подходит для этого репозитория Cookbook
- Рабочий процесс пинает на каждом коде нажимает на репо, запускает остальные шаги на сервере CI (Ubuntu в большинстве случаев)
- Проверка репо
- Устанавливает Ruby.
- Использует GemFile и устанавливает необходимые GEM-пакеты и это зависимые драгоценные камни
- Вызовите статический анализ кода на кулинарных книгах с использованием GEM Cookstyle, SCA.SH Script, выполняющий шаг анализа кода. Сценарий использует
CookstyleRuby Gem, чтобы выполнить проверку синтаксиса поваренной книги и анализа кода
# sca.sh script
ls -ltr | grep drw | grep -v cookbook | awk '{print $9}' | while read dir_name
do
# berks vendor ../cookbook_cache
echo $dir_name
cookstyle $dir_name
done
- Построить и хранить кулинарные книги, используя команду «Berks Vendor» в каталог, Berks-vendor.sh Script используется для этого шага.
# berks-vendor.sh script
ls -ltr | grep drw | grep -v cookbook | awk '{print $9}' | while read dir_name
do
echo $dir_name
cd $dir_name
berks vendor ../cookbook_cache
cd ..
done
- Последнее CI Step в рабочем процессе — это, посылка поваренные книги, сброшенные в
cookbook_cacheСправочник и хранить его в Artifact Reppo или загрузить кулинарные книги на сервер Chef, используя команду «Berks Upload». - Все рабочие процессы Action GitHub хранятся внутри того же местоположения для хранилища под
.Github/WorkflowsОтказ В случае каких-либо изменений мы можем получить доступ к файлу YAML и редактировать его.
Список используемой литературы
Действие Github Документация Шеф-повар Berkshelf.
Оригинал: «https://dev.to/chefgs/writing-a-github-actions-workflow-for-chef-cookbook-cf1»