Moj novi omiljeni način da u potpunosti premalo koristim Makefile? Stvaranje personaliziranih pseudonima naredbi tijeka rada spremišta za svaki projekt koji možete prijaviti.
Može li Makefile poboljšati vaš DevOps i razviti programere? Koliko bi bilo sjajno da novi programer koji radi na vašem projektu ne započne kopiranjem i lijepljenjem naredbi iz vašeg README-a? Što ako umjesto:
pip3 install pipenv pipenv shell --python 3.8 pipenv install --dev npm install pre-commit install --install-hooks # look up how to install Framework X... # copy and paste from README... npm run serve
... jednostavno možete upisati:
make start
... i onda početi raditi?
Praviti razliku
make
Svaki dan koristim probleme iz uobičajenih razvojnih aktivnosti poput ažuriranja programa, instaliranja ovisnosti i testiranja.
Da bismo sve to učinili s Makefileom (GNU make), koristimo pravila i recepte Makefile. Slične paralele postoje i za POSIX okus, poput Target Rules. Evo izvrsnog članka o Makefilovima kompatibilnim s POSIX-om.
Evo nekoliko primjera stvari koje možemo make
olakšati (oprostite):
update: ## Do apt upgrade and autoremove sudo apt update && sudo apt upgrade -y sudo apt autoremove -y env: pip3 install pipenv pipenv shell --python 3.8 install: ## Install or update dependencies pipenv install --dev npm install pre-commit install --install-hooks serve: ## Run the local development server hugo serve --enableGitInfo --disableFastRender --environment development initial: update env install serve ## Install tools and start development server
Sada imamo neke pseudonime naredbenog retka koje možete prijaviti. Sjajna ideja! Ako se pitate što je s tom čudnom ##
sintaksom komentara, postaje bolje.
Makefile koji sam sebe dokumentira
Aliasi su izvrsni, ako se sjećate što su sve i što rade bez stalnog tipkanja cat Makefile
. Naravno, trebate help
naredbu:
.PHONY: help help: ## Show this help @egrep -h '\s##\s' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
Uz malo magije naredbenog retka, ova egrep
naredba uzima izlazne podatke MAKEFILE_LIST
, sortira ih i koristi awk
za pronalaženje nizova koji slijede ##
obrazac. Zatim ispisuje korisnu formatiranu verziju komentara.
Stavit ćemo ga na vrh datoteke tako da je zadani cilj. Sada da bismo vidjeli sve naše korisne prečace i što rade, samo trčimo make
ili make help
:
help Show this help initial Install tools and start development server install Install or update dependencies serve Run the local development server update Do apt upgrade and autoremove
Sada imamo svoj vlastiti personalizirani i specifični CLI alat za projekt!
Mogućnosti za poboljšanje vašeg protoka DevOps-a pomoću samo-dokumentirajućeg Makefile-a gotovo su bezbrojne. Možete ga koristiti za pojednostavljivanje bilo kojeg tijeka rada i stvaranje vrlo sretnih programera.