J'ai un thème privé et je souhaite déployer les nouvelles versions du thème de manière aussi fluide que possible.
J'ai entendu parler de:
J'ai donc eu l'idée de mettre à jour le thème en utilisant à chaque fois un fichier Zip portant un nom différent (par exemple my-awesome-theme-0.1.Zip
et ainsi de suite).
Est-ce une bonne idée ou est-ce que je manque quelque chose?
J'utilise cette approche pour les mises à jour de thèmes privés à l'aide d'archives versionnées et elle semble fonctionner assez bien pour moi. Aucun problème trouvé pour le moment. Donc, je suppose que pour les thèmes privés - c'est un bon.
Aussi, je suis venu avec un script pour construire des archives de thèmes versioned comme ceci:
#!/bin/bash
echo "======================";
echo "BUILDING THEME ARCHIVE";
echo "======================";
# Get version from style.css and CHANGES.md and compare them.
# If they are the same - proceed.
VER_STYLE="$(cat style.css | grep 'Version: ' | Perl -pe "s/Version: (.*)\\n/\1/g")"
VER_CHANGES="$(head -n 1 CHANGES.md | xargs | awk '{ print $2 }')"
if [ $VER_STYLE != $VER_CHANGES ]; then
printf "\e[31;5;21m%s\e[0m\n" "BUILD FAILED"
echo "Your version in style.css ($VER_STYLE) differs from version in CHANGES.md ($VER_CHANGES).";
echo "Please actualize.";
exit 1;
fi
# Theme archive build.
# Also create a new tag for builded version.
build_name="my-theme_$VER_STYLE.Zip"
echo "Building $build_name ...";
Zip -r -q \
--exclude=.* \
--exclude=sass/* \
--exclude=*/.DS_Store \
--exclude=*.md \
--exclude=*.Zip \
--exclude=*.sh \
$build_name . && git tag $VER_STYLE && git Push --tags && printf "\e[32;5;21m%s\e[0m\n" "done" ;
exit 0;
Avec un accès direct au serveur , en général , les utilisateurs téléchargent/synchronisent simplement les modifications de fichier par dessus. Cependant, cela laisse la possibilité que quelqu'un visite le site au moment où le thème est en cours de mise à jour.
La façon de le faire avec une interruption minimale:
theme-name-update
).theme-name
> theme-name-old
).theme-name-update
> theme-name
).Lorsque vous effectuez les étapes 2 et 3 dans une commande CLI (ou si vous disposez d'un script), le swap est extrêmement rapide et peu susceptible de poser problème.