haiku-atelier-2024/justfile

172 lines
5 KiB
Makefile
Executable file

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 tout.
[group('css')]
[group('js')]
build-all:
@just build-css
@just build-js
@just format
# Compile TypeScript à chaque changement de fichier.
[group('js')]
watch-js:
aube x vite build --config "cfg/vite.config.ts" --watch
# 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"