Учебный пример: модуль 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
-
Первый Git Action
Создать workflow, который запускается при каждомpushв веткуmainи выводит сообщениеHello, World!в лог. -
Автоматическое тестирование
Настроить workflow, который запускает unit‑тесты для проекта (например, Python/Node.js) при создании Pull Request. -
Сборка проекта
Создать workflow, который собирает проект (компилирует код, создаёт исполняемый файл и т.п.) приpushвmainи сохраняет артефакты сборки. -
Проверка стиля кода (Linting)
Интегрировать workflow, который запускает линтер (например,ESLint,Pylint) для проверки стиля кода перед слиянием Pull Request. -
Мультиплатформенная сборка
Создать workflow, который собирает проект для разных ОС (Linux, macOS, Windows) и/или разных версий Node.js/Python. -
Публикация пакета
Настроить workflow, который автоматически публикует пакет (например,npm,PyPI) при создании тега версии. -
Отправка уведомлений
Создать workflow, который отправляет уведомление (Slack, Telegram и т.п.) при успешном или неудачном завершении сборки. -
Развёртывание на статический хостинг
Настроить workflow для автоматического развёртывания статического сайта (HTML/CSS/JS) на GitHub Pages или Netlify приmergeвmain. -
Управление секретами
Использовать GitHub Actions Secrets для безопасного хранения API‑ключей, токенов и паролей, необходимых для workflow. -
Использование шаблонов (Templates)
Создать шаблон workflow, который можно легко переиспользовать в разных проектах. -
Работа с подмодулями (Submodules)
Написать workflow, который корректно обрабатываетgit submodulesпри сборке или тестировании. -
Триггеры по расписанию
Настроить workflow, который запускается по расписанию (например, раз в день) для выполнения фоновых задач (проверка зависимостей, сбор отчётов и т.д.). -
Сложный пайплайн
Создать workflow с несколькими этапами (stages), где каждый последующий этап зависит от успешного выполнения предыдущего (например, сборка → тестирование → развёртывание). -
Создание Docker‑образа
Написать workflow, который собирает Docker‑образ приложения и публикует его в Docker Hub или другом registry. -
Релизная автоматизация
Создать workflow, который автоматически создаёт GitHub Release при создании тега и прикрепляет к нему артефакты сборки.
Как работать с репозиторием
- Клонировать репозиторий в свой аккаунт GitHub (fork/clone).
- Убедиться, что установлен Python и
pip. - Установить зависимости:
pip install -r requirements.txt
- Запустить тесты локально:
pytest
- Создавать и изменять файлы в каталоге
.github/workflows/по заданиям выше. - Делать
commitиpushв GitHub, затем проверять выполнение workflow во вкладке Actions в репозитории.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file calculator_actions_example-0.2.1.tar.gz.
File metadata
- Download URL: calculator_actions_example-0.2.1.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a75bc2094ed954f4d96210f9ee83c74b48558c1215caacc765a17e757423cf5
|
|
| MD5 |
5af3b38d27ec88e6129da2fae6664691
|
|
| BLAKE2b-256 |
4b61438d59fcfbf3dbc470fdd12c437dcfce673fad2896bff2734eea9ef4842e
|
File details
Details for the file calculator_actions_example-0.2.1-py3-none-any.whl.
File metadata
- Download URL: calculator_actions_example-0.2.1-py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fc22789cdd80b660876b2374688db407480c5960809d0fb6b351a7fed24e2b1
|
|
| MD5 |
e0a04065da893c7b011820d30df4c096
|
|
| BLAKE2b-256 |
174c1335ac7b0bb24e5d6a936f72f2129b1d28cf8c6166f0d49b356bc4b74620
|