set shell := ["fish", "-c"] # Recette par défaut. default: build-all # Liste toutes les recettes list: @just --list --list-heading 'Recettes disponibles :'\n'' --unsorted # Met à jour les dépendances composer et npm. [group('js')] [group('php')] update: composer update aube update # Formatte avec treefmt. [group('qualité')] treefmt: treefmt --config-file ~/.config/treefmt/treefmt.toml . # Formatte avec Prettier et treefmt. [group('qualité')] format: aube x prettier \ --cache --cache-location ".cache/prettiercache" \ --config "cfg/prettier.config.ts" \ --ignore-path "cfg/prettierignore" \ --ignore-unknown \ --parallel-workers 8 \ --write . # TwigCsFixher -vendor/bin/twig-cs-fixer fix web/app/themes/haiku-atelier-2024/ # PhpCsFixer # -vendor/bin/php-cs-fixer fix --allow-risky yes treefmt \ --config-file ~/.config/treefmt/treefmt.toml \ --tree-root . \ . # Compile, minifie et optimise Sass vers CSS. [group('css')] build-css: @aube x sass \ --update \ "web/app/themes/haiku-atelier-2024/src/sass":"web/app/themes/haiku-atelier-2024/assets/css" @aube x lightningcss \ --bundle \ --minify \ --output-file "web/app/themes/haiku-atelier-2024/assets/css/main.min.css" \ -- "web/app/themes/haiku-atelier-2024/assets/css/main.css" @aube x lightningcss \ --bundle \ --minify \ --output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.min.css" \ -- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-panier.css" @aube x lightningcss \ --bundle \ --minify \ --output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-accueil.min.css" \ -- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-accueil.css" @aube x lightningcss \ --bundle \ --minify \ --output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-boutique.min.css" \ -- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-boutique.css" @aube x lightningcss \ --bundle \ --minify \ --output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-a-propos.min.css" \ -- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-a-propos.css" @aube x lightningcss \ --bundle \ --minify \ --output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-modele-simple.min.css" \ -- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-modele-simple.css" @aube x lightningcss \ --bundle \ --minify \ --output-file "web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.min.css" \ -- "web/app/themes/haiku-atelier-2024/assets/css/pages/page-succes-commande.css" # Compile le CSS à chaque changement de fichier. [group('css')] watch-css: @watchexec -w "web/app/themes/haiku-atelier-2024/src/sass" -- just build-css # Compile TypeScript en JavaScript. [group('js')] build-js: aube x vite build --config "cfg/vite.config.ts" # Compile TypeScript à chaque changement de fichier. [group('js')] watch-js: @watchexec -w "web/app/themes/haiku-atelier-2024/src/scripts" -w "web/app/themes/haiku-atelier-2024/src/scripts-effect" -- just build-js treefmt # Compile tout. [group('css')] [group('js')] build-all: @just build-css @just build-js @just format # Vérifie le code TypeScript avec des analyseurs statiques. [group('js')] [group('qualité')] lint-js: -aube x eslint "web/app/themes/haiku-atelier-2024/src/scripts" -aube x oxlint \ --config cfg/oxlint.config.ts \ --format stylish fix-js: aube x oxlint \ --config cfg/oxlint.config.ts \ --format stylish \ --fix --fix-suggestions --fix-dangerously # Vérifie le code Sass avec Stylelint. [group('css')] [group('qualité')] lint-css: -aube x stylelint --config "cfg/stylelint.config.ts" "web/app/themes/haiku-atelier-2024/src/sass/" --fix # Vérifie le code TypeScript mort avec knip [group('js')] [group('qualité')] lint-code-mort: -aube x knip # Fusionne tous les changements actuels dans le commit précédent et pousse sur le répertoire distant avec Jujetsu. [group('vcs')] squash-and-push: -jj squash --ignore-immutable && jj bookmark set principale -r @- --allow-backwards && jj git push # Analyse statiquement, compile et formate le CSS [group('css')] [group('qualité')] lint-build-format-css: -just lint-css -just build-css -just format # Créé l'image OCI. [group('container')] build-wordpress-container: @podman build -t wordpress-haiku-atelier:latest --progress=plain --file "containers/Dockerfile" . # Lance les services. [group('container')] up-services: @podman compose up -d # Arrête les services. [group('container')] down-services: @podman compose down # Redémarre les services. [group('container')] restart-services: @podman compose restart # Met à jour les conteneurs images des conteneurs. [group('container')] pull-images: bun run "scripts/pull-container-images.ts" export_production_db: fish "scripts/déclenche-sauvegarde-bdd-production.fish" ui_tests: aube x playwright test --config cfg/playwright.config.ts --ui