Download the PHP package qualitycode/phing-deploy without Composer
On this page you can find all versions of the php package qualitycode/phing-deploy. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download qualitycode/phing-deploy
More information about qualitycode/phing-deploy
Files in qualitycode/phing-deploy
Package phing-deploy
Short Description A simple tool to deploy your project
License MIT
Homepage https://github.com/QualityCodePhp/PhingDeploy
Informations about the package phing-deploy
README
Deploy permets :
- la création d'un package pour le déploiement
- le déploiement d'un package
- l'analyse statique du code
Il permet de gérer :
- plusieurs projets
- plusieurs environnements de déploiement
- plusieurs serveurs par environnement
Pré-requis
Serveur de déploiement
- php >= 5.3
- php-ssh
- git
- composer
- installer la clef publique du serveur de déploiement sur les différents serveurs où l'on doit déployer
- ajouter la clef publique du serveur de déploiement sur bitbucket et github
Fichiers de configuration du projet
Les fichiers de configuration du projet doivent être disponible pour chacun des environnements de déploiement.
Par exemple pour parameters.yml => parameters.yml.production
Fonctionnement
Deploy task
- En local
- création du répertoire de release
- clonage du repository
- récupération du dernier tag de la branche configurée si il y a des tags ou récupération du tag passé en paramètre
- récupération de composer.phar
- copie des fichiers de configuration spécifique à l'environnement
- composer install
- exécution de la tache "package" du build.xml du projet
- création d'un package (fichier tgz)
- Sur le(s) serveur(s) distant(s)
- création des répertoires du projet
- copie du package
- création du répertoire pour le déploiement
- décompression du package
- installation des cron
- exécution de la tache "deploy" du build.xml du projet
- mise à jour du lien current
- nettoyage des anciens déploiement
Installation
That's all !
Utilisation
- ./vendor/bin/phing help => Display this message
- ./vendor/bin/phing prepare -Dproject.name=test -Dstage.name=production => Prepare server
- ./vendor/bin/phing rollback -Dproject.name=test -Dstage.name=production => Rollback to previous deployment
- ./vendor/bin/phing package -Dproject.name=test -Dstage.name=production -Drepository.tag=1.0 => Application packaging
- ./vendor/bin/phing deploy -Dproject.name=test -Dstage.name=production -Drepository.tag=1.0 => Application deployment
- ./vendor/bin/phing qa -Dproject.name=test -Dstage.name=production -Drepository.tag=1.0 => Run qa tools
- ./vendor/bin/phing deploy-with-qa -Dproject.name=test -Dstage.name=production -Drepository.tag=1.0 => Run qa tools and deployment tasks
Si le projet est un bundle ou une library, le deployement n'a pas de sens, penser à mettre deploy.enable à false dans le fichier de configuration du projet.
Structure
Projet
Release
Remote
Taches spécifiques au projet
S'il y a besoin d'exécuter des taches spécifiques au projet, il suffit de placer un fichier phing build.xml à sa racine avec 3 targets :
- pre-package => avant la création de l'archive (par exemple : minification js et css)
- post-package => après la création du package (par exemple : versionning du package, envoie d'un mail)
- pre-deploy => avant le déploiement
- post-deploy => après le déploiement
- pre-rollback => avant le rollback
- post-rollback => après le rollback
Si la tache a besoin d'être éxécutée sur le serveur, il faut passer par la target deploy.tool.ssh
Mise en place de cron
Dans le projet mettre les cron dans :
Les chemins des scripts dans les fichiers cron doivent être précédé par .
Configuration
Paramètres et leur emplacement conseillé :
properties/build.properties
Nom | Type | Description | Default | Requis |
---|---|---|---|---|
qa.phploc.path | string | chemin complet ou relatif | n/a | oui |
qa.phpcpd.path | string | chemin complet ou relatif | n/a | oui |
qa.phpdcd.path | string | chemin complet ou relatif | n/a | oui |
qa.phpmd.path | string | chemin complet ou relatif | n/a | oui |
qa.phpcs.path | string | chemin complet ou relatif | n/a | oui |
qa.pdepend.path | string | chemin complet ou relatif | n/a | oui |
qa.phpmetrics.path | string | chemin complet ou relatif | n/a | oui |
deploy.history | entier | nombre de déploiement à conserver | 5 | non |
properties/project/project_name.properties
Nom | Type | Description | Default | Requis |
---|---|---|---|---|
repository | string | url (http ou ssh) du dépot git | n/a | oui |
repository.branch | string | nom de la branche à récupérer | n/a | oui |
source.path | string | chemin relatif des sources (ex: ./src) | n/a | oui |
deploy | boolean | doit-on déployer le projet | true | non |
project.configuration.files | string | liste des fichiers de configuration (séparé par ,) | n/a | non |
properties/stage/stage_name.properties
Nom | Type | Description | Default | Requis |
---|---|---|---|---|
deploy.path | string | chemin complet sur le serveur | n/a | oui |
deploy.hosts | string | ip ou nom des serveurs (séparé par ,) | n/a | oui |
deploy.user | string | utilisateur sur le serveur | n/a | oui |
deploy.pubkeyfile | string | chemin complet ou relatif de la clef publique | n/a | oui |
deploy.privkeyfile | string | chemin complet ou relatif de la clef privée | n/a | oui |
properties/stage/stage_name/project_name.properties
Vous pouvez surcharger ici tous les paramètres
All versions of phing-deploy with dependencies
pear/archive_tar Version ^1.3
sebastian/phpcpd Version ^2.0
phpmd/phpmd Version ^2.2
phploc/phploc Version ^2.1
phpunit/phpunit Version ^4.7
phpunit/php-code-coverage Version ^2.2@dev
pear/versioncontrol_git Version dev-master
squizlabs/php_codesniffer Version ^2.0@dev
halleck45/phpmetrics Version dev-master
sebastian/phpdcd Version ^1.0@dev
ext-ssh2 Version *