andrelohmann.wkhtmltopdf

wkhtmltopdf

Последний тест

Содержание

Используйте эту роль для установки консольного генератора PDF wkhtmltopdf + полного набора шрифтов Google для использования в сгенерированных PDF-документах.

wkhtmltopdf устанавливается из источников распределения Ubuntu.

Требования

Эта роль требует наличие Ubuntu.

Переменные роли

Стандартный набор переменных можно использовать, чтобы решить, нужно ли устанавливать весь набор шрифтов Google.

wkhtmltopdf_install_google_fonts: true

Извлеките актуальную версию тега здесь.

Пример playbook

- hosts: wkhtmltopdf
  roles:
     - { role: andrelohmann.wkhtmltopdf }

Разработка роли

Специальные функции

Этот репозиторий поддерживает следующие функции для разработки роли:

  • yamllint
  • ansible-lint
  • molecule test
  • github action
  • автоматическое обновление версии
  • обновление ansible-galaxy
  • отображение статуса сборки
  • тестирование внутри vagrant (для целей разработки)
  • тестирование с molecule (внутри или вне vagrant)
  • тестирование с помощью контейнера docker
  • тестирование и разработка внутри vscode

Предварительные условия

https://thedatabaseme.de/2022/01/17/automated-testing-your-ansible-role-with-molecule-and-github-actions/

  • Установленные Virtualbox + Vagrant (только если роль должна быть протестирована с помощью vagrant)
  • Docker Desktop
  • VisualStudioCode + пакет расширений для удаленной работы (зависимости определены в .vscode/extensions.json)

Настройка разработки

Эта роль Ansible разрабатывается с использованием molecule для тестирования. Ее разработка основана на Visual Studio Code и соответствующем контейнере для разработки, который решает все зависимости относительно необходимых инструментов (ansible, linter, molecule).

Роль будет тестироваться на Ubuntu Jammy.

Чтобы запустить тестовые контейнеры molecule из контейнера для разработки, необходимо привязать сокет docker в контейнер разработки.

Важные папки и файлы

.devcontainer
  • Определяет Dockerfile для контейнера разработки
  • Настраивает запуск контейнера разработки (например, привязка сокета docker)
molecule/default/Dockerfile.js
  • Используется как шаблон для всех платформ, определенных в molecule/default/molecule.yml
  • Подготавливает окружения для поддержки системных служб systemd (необходимо для некоторых ролей ansible, работающих с systemd)
  • Устанавливает все требования для запуска ansible против созданного контейнера
  • Файл соответствует атрибутам платформ в molecule/default/molecule.yml
  • Для получения дополнительной информации - изучите документацию molecule

Использование

Visual Studio Code

  • Перейдите в корневую директорию вашей роли и запустите vscode
code .
  • Из контейнера разработки вы можете использовать следующие команды для выполнения
yamllint .
ansible-lint .
molecule create
molecule test

Vagrant + Virtualbox

  • Перейдите в корневую директорию вашей роли
  • Перейдите в папку vagrant
  • Запустите и войдите в машину vagrant
vagrant up
vagrant ssh
  • Перейдите в папку роли
cd /etc/ansible/roles/ansible-role- [tab]
  • Теперь вы можете запустить все тесты
yamllint .
ansible-lint .
molecule create
molecule test

Процесс сборки и релиза

Роль ansible определяет множество рабочих процессов github для тестирования molecule и управления релизами.

Управление релизами требует нескольких настроек.

Защита основной ветки

  • Настройки -> Ветки -> Добавить правило защиты ветки
  • Имя шаблона ветки -> main или master (в зависимости от вашей основной ветки)
  • Защита совпадающих веток -> отметьте "Требовать запрос на изменение перед объединением"
  • "Требовать одобрений" может быть обработано индивидуально по мере необходимости

Дать права чтения и записи на GITHUB_TOKEN

  • Настройки -> Действия -> Общие -> Права рабочего процесса -> права чтения и записи

Сообщения коммитов

Сообщения коммитов должны следовать особому формату, чтобы достичь обновления семантического версионирования патча, минорного или мажорного.

патч

0.0.x

fix(single_word): описание
минорный

0.x.0

feat(single_word): описание
мажорный

x.0.0

perf(single_word): описание
BREAKING CHANGE: описание разрывающего изменения

Обязательно важно, чтобы "BREAKING CHANGE: " упоминалось в строке второй и следующих. В случае однострочных сообщений коммитов обновление мажорной версии будет проигнорировано.

Добавьте секрет GALAXY_API_KEY

  • Аутентифицируйтесь с вашим аккаунтом github на https://galaxy.ansible.com/.
  • Получите ключ API galaxy из Настройки -> Ключ API
  • Откройте ваш репозиторий роли github
  • Настройки -> Секреты и переменные -> Действия -> Новый секрет репозитория
  • Используйте "GALAXY_API_KEY" в качестве ключа и скопированный ключ API galaxy в качестве значения

Лицензия

MIT

Информация об авторе

© Андре Лохман (и другие) 2024

https://github.com/andrelohmann

Контакт для поддержки

  • Андре Лохман <lohmann.andre (at) gmail (dot) com>
О проекте

ansible galaxy role to install wkhtmltopdf client generator

Установить
ansible-galaxy install andrelohmann.wkhtmltopdf
Лицензия
mit
Загрузки
11.9k
Владелец