Tout le monde n'aime pas la subversion. Si vous utilisez Git pour gérer le développement de plugins WordPress, il est fastidieux de synchroniser votre référentiel Git et le référentiel SVN de WordPress.org. Heureusement, nous pouvons utiliser le fournisseur de déploiement TravisCI pour automatiser le déploiement du SVN après les tests..
Vous avez besoin de ceux-ci avant de continuer:
Pour utiliser TravisCI, nous devons héberger le référentiel de plugins sur GitHub..
Tout d'abord, créez un nouveau référentiel sur GitHub en allant sur cette page et en remplissant le nom du référentiel..
Ensuite, nous allons valider tous les fichiers du plugin dans Git et les transférer dans ce référentiel GitHub. N'oubliez pas de remplacer l'URL distante par la vôtre.
$ cd / chemin / vers / plugin / répertoire $ git init $ git add -A $ git commit -m "premier commit" $ git distant ajouter origine https://github.com/TangRufus/tutsplus-dpl-demo.git $ git push -u origine master
Connectez votre référentiel GitHub à TravisCI en accédant à la page de votre compte TravisCI et en activant votre référentiel. Cliquez sur Compte de synchronisation dans le coin supérieur droit si votre référentiel nouvellement créé ne figure pas dans la liste.
Vous êtes tous ensemble. Chaque fois que vous appliquez de nouveaux commits ou que quelqu'un envoie des demandes d'extraction à GitHub, cela génère une construction sur TravisCI..
TravisCI utilise un fichier YAML nommé .travis.yml
à la racine de votre référentiel pour personnaliser les versions. Apprenez-en davantage dans le document de personnalisation de la construction pour voir comment contrôler le cycle de vie de la génération..
C’est un fichier de configuration de base qui indique à TravisCI d’exécuter des versions de PHP 7,0
et 7.1
. Puisque les tests sortent du cadre de ce tutoriel, j'ai remplacé les commandes de test réelles par echo 'Testé'
.
# .travis.yml langue: php sudo: false php: - 7.0 - 7.1 script: # Exécutez vos tests ici. - echo 'Tested'
Commettez ce fichier et envoyez-le à GitHub. Les constructions TravisCI seront déclenchées automatiquement.
$ git add .travis.yml $ git ci -am "Ajouter .travis.yml" $ git push origin master
Les fournisseurs de déploiement s’exécutent si les tests ont réussi et des conditions prédéfinies (les sur
section) sont remplies. TravisCI fournit près de 40 fournisseurs de déploiement officiels. Malheureusement, aucun d’entre eux ne prend en charge les référentiels de subversion de WordPress.org. Ainsi, j'ai créé mon propre fournisseur personnalisé. Vous pouvez le trouver sur GitHub et sa demande de tirage.
Pour l'utiliser, ajoutez ces lignes à la fin de .travis.yml
.
before_deploy: - mkdir build - cp LICENCE build - cp README.txt build - cp remove-medium-cross-link-links.php build deploy: - fournisseur: wordpress-plugin bord: source: TypistTech / dpl branche: add-wordpress-plugin- déploiement sur: php: 7.1 tags: true repo: TangRufus / tutsplus-dpl-demo slug: remove-medium-cross-links nom d'utilisateur: tangrufus mot de passe: $ WORDPRESS_ORG_PASSWORD build_dir: build
before_deploy
le before_deploy
section copie trois fichiers dans le construire
répertoire à archiver dans le référentiel de sous-version de WordPress.org. Dans le monde réel, c'est là que vous voulez exécuter gorgée
ou grognement
tâches pour préparer le plugin prêt pour la production.
Ne copiez pas de fichiers de test ni de fichiers inutiles dans construire
comme l'ensemble construire
le répertoire est mis à la disposition des utilisateurs et ceux-ci n'ont pas besoin de vos fichiers de test.
fournisseur
et bord
Nous disons à TravisCI d’installer mon fournisseur à partir du add-wordpress-plugin-deployment
branche https://github.com/TypistTech/dpl. Une fois que la demande d'extraction a été fusionnée, le bord
une partie est inutile.
sur
le sur
section contrôle si un déploiement doit être effectué. Le déploiement est déclenché uniquement lorsque toutes les conditions requises sont remplies.
Dans l'exemple ci-dessus, nous déployons sur WordPress.org uniquement lorsque:
7.1
construirelimace
Le slug du plugin.
Si l'URL de votre plugin est https://wordpress.org/plugins/my-awesome-plugin/, alors mon-génial-plugin
est le slug du plugin.
Nom d'utilisateur
Le nom d'utilisateur de votre compte WordPress.org avec lequel vous avez soumis le plugin pour approbation.
mot de passe
Le mot de passe du compte WordPress.org. Ne jamais enregistrer ce mot de passe dans le .travis.yml
en clair!
Dans l'exemple ci-dessus, nous utilisons le $ WORDPRESS_ORG_PASSWORD
variable d’environnement pouvant être définie dans le tableau de bord Web TravisCI. Choisir Réglages dans le menu cog, et cliquez sur Ajouter dans le Variables d'environnement section. Ne jamais activer l'option "Afficher la valeur dans le journal de génération"!
build_dir
Tout ce qui se trouve dans ce répertoire sera validé dans le référentiel de sous-version de WordPress.org, c’est-à-dire inclus dans le fichier zip téléchargeable..
Nous réglons ceci à construire
parce que nous avons copié des fichiers plugin dans construire
pendant before_deploy
.
Supposons que nous ayons corrigé quelques bugs et que nous sommes prêts à publier une nouvelle version sur WordPress.org.
Ces commandes valident les modifications apportées à la maîtriser
branche mais ne déclenche pas de déploiement:
$ git add -A $ git commit -am "Correction de bogue" $ git push origin master
Seul le déploiement des déclencheurs étiquetés est valide:
$ git tag -a 1.0.17 -m "Version bump 1.0.17" $ git push origin master --tags
Retournez dans TravisCI et ouvrez le PHP 7.1
construire un journal. Vous devriez voir un déploiement est enregistré.
Construire le gem dpl localement avec la source TypistTech / dpl et la branche add-wordpress-plugin-deployment Installation des dépendances de déploiement !!! Le support du plugin WordPress est expérimental !!! Préparation du déploiement Recherche de la configuration pour le déploiement du plugin WordPress… Slug: remove-medium-cross-links Nom d'utilisateur: tangrufus Mot de passe trouvé Répertoire de construction: build Répertoire des actifs: non trouvé Validation de la configuration pour le déploiement du plugin WordPress… La configuration semble bonne Aller à deloy tag: 1.0.17 Nettoyer le dépôt git avec 'git stash --all'. Si vous avez besoin d'artefacts de construction pour le déploiement, définissez 'deploy.skip_cleanup: true'. Voir https://docs.travis-ci.com/user/deployment/#Uploading-Files. / usr / lib / git-core / git-stash: 186: / usr / lib / git-core / git-stash: impossible de créer /home/travis/build/TangRufus/tutsplus-dpl-demo/.git/logs/ refs / stash: Répertoire inexistant Déploiement de l'application Vérification de https://plugins.svn.wordpress.org/remove-medium-cross-links Effacement / tmp / d20170513-3291-1yh7vqo / trunk… Suppression des fichiers supprimés de la subversion… D / tmp / d20170513-3291-1yh7vqo / trunk Retrait temporaire du coffre et des éléments d'actif (si assets_dir est défini) Suppression de tmp / d20170513-3291-1yh7vqo / trunk Révision autorisée 1656616. Copie de la construction dans / tmp / d201751313-3291. / d20170513-3291-1yh7vqo / trunk à /tmp/d20170513-3291-1yh7vqo/tags/1.0.17… Ajout de nouveaux fichiers à la subversion… A / tmp / d20170513-3291-1yh7vqo / trunk A / tmp / d201705-3. / trunk / LICENSE A /tmp/d20170513-3291-1yh7vqo/trunk/README.txt A /tmp/d20170513-3291-1yh7vqo/trunk/remove-medium-cross-links.php A / tmp / d20170513-322 tags / 1.0.17 A /tmp/d20170513-3291-1yh7vqo/tags/1.0.17/LICENSE A / tmp / d20170513-3291-1y h7vqo / tags / 1.0.17 / README.txt A /tmp/d20170513-3291-1yh7vqo/tags/1.0.17/remove-medium-cross-links.php Réalisation 1.0.17 Ajout de tmp / d20170513-3291-1yh7vqo / tags /1.0.17 Ajout de tmp / d20170513-3291-1yh7vqo / tags / 1.0.17 / LICENCE Ajout de tmp / d20170513-3291-1yh7vqo / tags / 1.0.17 / README.txt Ajout de tmp / d20170513-3291-1yh7 / tags / 1.0 .17 / remove-medium-cross-links.php Ajout de tmp / d20170513-3291-1yh7vqo / trunk Ajout de tmp / d20170513-3291-1yh7vqo / trunk / LICENCE Ajout de tmp / d20170513-3291-1yh7vqo / trunk / LICENSE Ajout du tmp / d20170513-3291-132hvv / 1) /d20170513-3291-1yh7vqo/trunk/remove-medium-cross-links.php Transmission de données de fichier… Révision validée 1656617.
Et sur le Trac de WordPress.org (https://plugins.trac.wordpress.org/browser/
svn commit
Deux foisDepuis que TravisCI est livré avec une ancienne version de subversion
qui ne joue pas bien avec les sous-répertoires, je fais svn commit
deux fois.
La première svn commit
enlève tout à l'intérieur tronc
. La deuxième svn commit
copie tout de build_dir
à tronc
.
Ce fournisseur est encore à titre expérimental et n’a pas encore été fusionné avec le dépôt officiel de TravisCI. Vous pouvez suivre les commentaires de TravisCI sur sa demande d'extraction..
En utilisant bord
ne fusionne pas ma branche dans le maître en amont. Il est possible que ma filiale soit derrière le dépôt officiel. Quand cela se produit, vous pouvez créer une branche et la rebaser, puis changer la source
dans .travis.yml
dans votre dépôt GitHub.
Pour utiliser ce fournisseur de déploiement:
.travis.yml
.J'espère que tout ce qui précède vous aide à déployer des plugins vers WordPress.org plus rapidement.
WordPress a une économie incroyablement active. Il existe des thèmes, des plugins, des bibliothèques et de nombreux autres produits qui vous aident à construire votre site et votre projet. La nature open-source de la plate-forme en fait également une excellente option pour améliorer vos compétences en programmation. Quoi qu’il en soit, vous pouvez voir tout ce que nous avons à votre disposition sur le marché Envato..
Merci d'avoir lu!