Cykl: Automatyzacja procesów z n8n — od danych do AI w jednym narzędziu · Część 8/20

Lista zadań i pipeline'y w Pythonie: makefile/invoke/fabric

Kacper Sieradziński
Kacper Sieradziński20 stycznia 2025 · 1 min czytania
Streszczenie
  • Invoke - lista zadań
  • Makefile dla Pythona
  • Fabric - zdalne zadania
  • Pipeline'y z zadania zależne
Lista zadań i pipeline'y w Pythonie: makefile/invoke/fabric

Lista zadań i pipeline'y to nieodzowny element profesjonalnej automatyzacji — pozwalają na standardyzację komend, tworzenie powtarzalnych procesów oraz zapewnienie, że każdy w zespole używa tych samych narzędzi i metodologii. Zamiast pamiętać długie, skomplikowane komendy, możesz stworzyć proste aliasy i pipeline'y, które wykonują sekwencje zadań w odpowiedniej kolejności. Python oferuje zaawansowane narzędzia do zarządzania zadaniami, takie jak invoke (do lokalnych zadań), fabric (do zadań zdalnych) oraz klasyczne Makefile, które pozwalają na definiowanie zależności między zadaniami i automatyzację całych workflow'ów budowania, testowania i wdrażania projektów.

Invoke - lista zadań

Biblioteka invoke do definiowania zadań:

Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 # tasks.py from invoke import task @task def test(ctx): """Uruchamia testy.""" ctx.run("pytest tests/") @task def lint(ctx): """Sprawdza jakość kodu.""" ctx.run("flake8 .") ctx.run("black --check .") @task def format(ctx): """Formatuje kod.""" ctx.run("black .") @task(pre=[lint, test]) def build(ctx): """Buduje projekt.""" ctx.run("python setup.py build") # Użycie: invoke test, invoke lint, invoke build

Makefile dla Pythona

Klasyczny Makefile dla automatyzacji:

MAKEFILE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 .PHONY: help install test lint format clean help: @echo "Dostępne komendy:" @echo "make install- Instalacja zależności" @echo "make test - Uruchomienie testów" @echo "make lint - Sprawdzenie jakości kodu" @echo "make format - Formatowanie kodu" @echo "make clean- Czyszczenie plików tymczasowych" install: pip install -r requirements.txt test: pytest tests/ lint: flake8 . black --check . format: black . clean: find . -type d -name __pycache__ -exec rm -r {} + find . -type f -name "*.pyc" -delete rm -rf .pytest_cache .coverage htmlcov # Użycie: make install, make test, make lint

Fabric - zdalne zadania

Newsletter · co środę

Python co tydzień — newsletter dla programistów

Otrzymuj codzienne ćwiczenia, ciekawostki z ekosystemu Pythona i wskazówki do rozmów rekrutacyjnych.

2 312 czytelników · ⭐ 4,8

Automatyzacja zadań zdalnych:

Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # fabfile.py from fabric import task @task def deploy(c): """Wdraża aplikację.""" c.run("git pull origin main") c.run("pip install -r requirements.txt") c.run("systemctl restart myapp") @task def backup(c): """Tworzy backup bazy danych.""" c.run("pg_dump mydb > backup.sql") # Użycie: fab deploy, fab backup

Pipeline'y z zadania zależne

Tworzenie złożonych pipeline'ów:

Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 from invoke import task @task def clean(ctx): """Czyści pliki tymczasowe.""" ctx.run("rm -rf build dist *.egg-info") @task def test(ctx): """Uruchamia testy.""" ctx.run("pytest tests/") @task def build(ctx): """Buduje pakiet.""" ctx.run("python setup.py sdist bdist_wheel") @task(pre=[clean, test], post=[build]) def release(ctx): """Kompletny proces wydania.""" print("Proces wydania rozpoczęty") # Dodatkowe kroki # Użycie: invoke release (uruchomi clean, test, release, build)

Podsumowanie

Kurs · 24 lekcje8h 14m
Kurs

Kurs Python dla początkujących — PyStart

Zacznij programować w Pythonie! Idealne dla osób bez doświadczenia. Praktyczne zadania, projekty i wsparcie społeczności.

  • 24 lekcje wideo + 80 ćwiczeń
  • Realne bazy z e-commerce
  • Społeczność i code-review
499 zł799 zł−38%
Rozpocznij naukę

Zarządzanie zadaniami w Pythonie obejmuje:

  • Invoke do lokalnych zadań
  • Makefile dla standardowych komend
  • Fabric dla zadań zdalnych
  • Pipeline'y z zależnościami między zadaniami

Te narzędzia standardyzują procesy i zwiększają powtarzalność w projektach Python.

➡️ Następny artykuł

Po opanowaniu zarządzania zadaniami, naucz się automatyzować CI/CD:

Automatyzacja CI/CD w Pythonie: GitHub Actions — kompletny przewodnik po automatyzacji testów, kontroli jakości kodu i wdrożeń z poziomu GitHub Actions.

Część 9 z 20

Narzędzia do PDF w Pythonie: przegląd bibliotek

druga lekcja cyklu „Automatyzacja procesów z n8n — od danych do AI w jednym narzędziu"

Czytaj kolejny →