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.2.1.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.2.1-py3-none-any.whl (3.7 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for calculator_actions_example-0.2.1.tar.gz
Algorithm Hash digest
SHA256 1a75bc2094ed954f4d96210f9ee83c74b48558c1215caacc765a17e757423cf5
MD5 5af3b38d27ec88e6129da2fae6664691
BLAKE2b-256 4b61438d59fcfbf3dbc470fdd12c437dcfce673fad2896bff2734eea9ef4842e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for calculator_actions_example-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2fc22789cdd80b660876b2374688db407480c5960809d0fb6b351a7fed24e2b1
MD5 e0a04065da893c7b011820d30df4c096
BLAKE2b-256 174c1335ac7b0bb24e5d6a936f72f2129b1d28cf8c6166f0d49b356bc4b74620

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