Make is an actual task runner

Make is an actual task runner

F46b6942be65359575174569d8979223?s=128

Julien BIANCHI

October 27, 2016
Tweet

Transcript

  1. None
  2. Make is an actual task runner

  3. @JUBIANCHI julien.bianchi@pmsipilot.com
 contact@jubianchi.fr MAKE WHO-AM-I

  4. LES MÊMES tâches toute la journée, tous les jours les

    développeurs exécutent
  5. AUTOMATISER ? pourquoi ne pas tout

  6. TASK RUNNER — quelqu’un, un jour et si on écrivait

    un
  7. TASK RUNNER — quelqu’un d’autre, un autre jour et si

    on écrivait un
  8. PHING

  9. ROBO

  10. BLDR

  11. GRUMPHP

  12. LE PROBLÈME

  13. L’AUTRE PROBLÈME

  14. MONOREPO un dépôt, plusieurs technos PLUSIEURS TASK RUNNERS ? UN

    SEUL ? LEQUEL ?
  15. None
  16. LES MÊMES qu’hier… et avant… nos problèmes aujourd’hui sont

  17. (since 1977) Make

  18. SIMPLE make est

  19. CONFIGURABLE make est

  20. INTELLIGENT make est

  21. PORTABLE make est

  22. INDÉPENDANT make est

  23. $ make make: *** No targets specified and no makefile

    found. Stop. SIMPLE
  24. cible …: [prérequis …] [recette] […] LES RÈGLES

  25. VARIABLE = [valeur] LES VARIABLES

  26. vendor: composer.lock composer install composer.lock: composer.json composer update CONFIGURABLE

  27. $ make composer install … SIMPLE

  28. $ make make: `vendor' is up to date. INTELLIGENT

  29. vendor: composer.lock composer install composer.lock: composer.json composer update node_modules: package.json

    npm install INDÉPENDANT
  30. me-started: vendor node_modules .PHONY: me-started vendor: composer.lock composer install composer.lock:

    composer.json composer update node_modules: package.json npm install CONFIGURABLE
  31. $ make me-started composer install … npm install … SIMPLE

  32. $ make -j2 me-started composer install npm install … …

    SIMPLE & EFFICACE
  33. MIAATR_ENV ?= dev COMPOSER_ARGS = ifeq ($(MIAATR_ENV),prod) COMPOSER_ARGS=—prefer-dist —classmap- authoritative

    endif vendor: composer.lock composer install $(COMPOSER_ARGS) CONFIGURABLE
  34. $ make composer install $ make MIAATR_ENV=prod composer install —prefer-dist

    — classmap-authoritative $ export MIAATR_ENV=prod $ make composer install —prefer-dist SIMPLE
  35. logs/xunit.xml: src/*.php tests/*.php vendor/bin/atoum EXEMPLES lancer ses tests unitaires

  36. logs/cs.log: src/*.php vendor/bin/php-cs-fixer | tee logs/cs.log EXEMPLES vérifier/corriger les CS

  37. logs/cs.log: src/*.php vendor/bin/php-cs-fixer fix | tee $@ EXEMPLES vérifier/corriger les

    CS
  38. logs/phpmetrics.html: src/*.php vendor/bin/phpmetrics —report- html=$@ src/ EXEMPLES qualité

  39. test: logs/xunit.xml logs/cs.log logs/ phpmetrics.html .PHONY: test EXEMPLES one target

    to rule them all
  40. VIEUX mais c’est make c’est BIEN

  41. SIMPLE LES RÈGLES LES RECETTES (commandes) LES VARIABLES CLI

  42. CONFIGURABLE MAKEFILE ENVIRONNEMENT CLI

  43. INTELLIGENT PORTABLE INDÉPENDANT

  44. (since 1977) Make

  45. None
  46. REAL WORLD

  47. REAL WORLD

  48. REAL WORLD

  49. REAL WORLD

  50. REAL WORLD

  51. Merci Questions ? https://joind.in/talk/5f30d

  52. http://lyon.afup.org/cfp/ WE CAN HELP YOU!

  53. http://afup.org/event/phptournantes2017