Skip to main content

Учебный пример: модуль calculator для задач по GitHub Actions

Project description

Практическая работа по GitHub Actions

Цель работы

Научиться автоматизировать рабочие процессы, связанные с репозиторием, такие как:

  • сборка проекта
  • тестирование
  • развёртывание
  • отправка уведомлений и другие задачи, выполняемые автоматически при событиях в GitHub (push, pull request, теги, расписание и т.д.).

Структура репозитория

  • calculator.py – простой учебный Python‑модуль с арифметическими функциями.
  • tests/test_calculator.py – юнит‑тесты на pytest для проверки работы модуля calculator.py.
  • requirements.txt – зависимости проекта (включая pytest для запуска тестов локально и в GitHub Actions).
  • .github/workflows/first-action.yml – пример первого workflow, который выполняется при push в ветку main и выводит сообщение в лог.

Эта структура может быть расширена новыми workflow‑файлами по мере выполнения заданий.

Задания по GitHub Actions

  1. Первый Git Action
    Создать workflow, который запускается при каждом push в ветку main и выводит сообщение Hello, World! в лог.

  2. Автоматическое тестирование
    Настроить workflow, который запускает unit‑тесты для проекта (например, Python/Node.js) при создании Pull Request.

  3. Сборка проекта
    Создать workflow, который собирает проект (компилирует код, создаёт исполняемый файл и т.п.) при push в main и сохраняет артефакты сборки.

  4. Проверка стиля кода (Linting)
    Интегрировать workflow, который запускает линтер (например, ESLint, Pylint) для проверки стиля кода перед слиянием Pull Request.

  5. Мультиплатформенная сборка
    Создать workflow, который собирает проект для разных ОС (Linux, macOS, Windows) и/или разных версий Node.js/Python.

  6. Публикация пакета
    Настроить workflow, который автоматически публикует пакет (например, npm, PyPI) при создании тега версии.

  7. Отправка уведомлений
    Создать workflow, который отправляет уведомление (Slack, Telegram и т.п.) при успешном или неудачном завершении сборки.

  8. Развёртывание на статический хостинг
    Настроить workflow для автоматического развёртывания статического сайта (HTML/CSS/JS) на GitHub Pages или Netlify при merge в main.

  9. Управление секретами
    Использовать GitHub Actions Secrets для безопасного хранения API‑ключей, токенов и паролей, необходимых для workflow.

  10. Использование шаблонов (Templates)
    Создать шаблон workflow, который можно легко переиспользовать в разных проектах.

  11. Работа с подмодулями (Submodules)
    Написать workflow, который корректно обрабатывает git submodules при сборке или тестировании.

  12. Триггеры по расписанию
    Настроить workflow, который запускается по расписанию (например, раз в день) для выполнения фоновых задач (проверка зависимостей, сбор отчётов и т.д.).

  13. Сложный пайплайн
    Создать workflow с несколькими этапами (stages), где каждый последующий этап зависит от успешного выполнения предыдущего (например, сборка → тестирование → развёртывание).

  14. Создание Docker‑образа
    Написать workflow, который собирает Docker‑образ приложения и публикует его в Docker Hub или другом registry.

  15. Релизная автоматизация
    Создать workflow, который автоматически создаёт GitHub Release при создании тега и прикрепляет к нему артефакты сборки.

Как работать с репозиторием

  1. Клонировать репозиторий в свой аккаунт GitHub (fork/clone).
  2. Убедиться, что установлен Python и pip.
  3. Установить зависимости:
    pip install -r requirements.txt
    
  4. Запустить тесты локально:
    pytest
    
  5. Создавать и изменять файлы в каталоге .github/workflows/ по заданиям выше.
  6. Делать commit и push в GitHub, затем проверять выполнение workflow во вкладке Actions в репозитории.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

calculator_actions_example-0.3.0.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

calculator_actions_example-0.3.0-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

Details for the file calculator_actions_example-0.3.0.tar.gz.

File metadata

File hashes

Hashes for calculator_actions_example-0.3.0.tar.gz
Algorithm Hash digest
SHA256 49b1bac22dda66e4340d150c600c73ec3be0fcbed05ee41df91b802984372606
MD5 c58ca3af37ce577b9f6bd45354c2c456
BLAKE2b-256 1d53d260627893f1d424fe39dbca13b66d5dc9b3dd05f078f876136e12354717

See more details on using hashes here.

File details

Details for the file calculator_actions_example-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for calculator_actions_example-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8a35407791177cc20a7bb65af201b2d811e8033ed312af981bed07b2edfddd2
MD5 7eeeb5da95a1913aed31b3d87c1c9990
BLAKE2b-256 0799744f94f57056d3703b058c47fcffaa76733bd7c58832ad2fdeea9b5fc6f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page