edwines / updater-bundle
Symfony2 Bundle that allows updating the git repository, through services hooks (POST data)
Installs: 59
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.3.2
- ornicar/php-git-repo: dev-master
- symfony/framework-bundle: 2.*
This package is not auto-updated.
Last update: 2024-10-26 14:43:00 UTC
README
This bundle allow updating the repository in production; using git service hooks provided by some git hosting system (like GitHub). Currently these providers are supported:
- GitHub
- Bitbucket
But you can build your custom provider.
Requirements
The production server needs to have git installed and configured to connect with
the provider. Also the repository of the Symfony project need to has write
permissions to the web user (usually named www-data
).
Installation
Step 1: Download EdwinesUpdaterBundle
Add the following dependency in your composer.json
{ "require": { "edwines/updater-bundle": "1.0.*", } }
Now tell composer to download the bundle by running the command:
$ php composer.phar update edwines/updater-bundle
Step 2: Enable de bundle
Enable the bundle in the kernel:
// app/AppKernel.php public function registerBundles() { $bundles = array( // ... new Edwines\UpdaterBundle\EdwinesUpdaterBundle(), ); }
Step 3: Configure the bundle
By default you don't need to set the configuration. But if you want to change the default values, just follow the next instructions:
The bundle set the directory of the repository to %kernel.root_dir%/../
to edit
it just set the repo_path
:
# app/config/config.yml edwines_updater: repo_path: /project/repository/path/
By default the provider is GitHub, if you want to use Bitbucket:
# app/config/config.yml edwines_updater: provider: Edwines\UpdaterBundle\Provider\Bitbucket
Step 4: Add routes
If you want to have all the routes (the route for update the system, and another one to see the git status)
# app/config/routing.yml ed_updater: resource: "@EdwinesUpdaterBundle/Resources/config/routing/updater.yml" prefix: /my-updater-prefix
Or if only want the route to update the project:
# app/config/routing.yml ed_updater: resource: "@EdwinesUpdaterBundle/Resources/config/routing/hook.yml" prefix: /my-hook-prefix
Step 5: Add POST service to your provider
Now, you need to add a new service hook in your provider (see the
GitHub help). Your hook url will be
http://my-domain.com/my-updater-prefix/hook/
or if you configure to only use
the hook url: http://my-domain.com/my-hook-prefix/
How it works
When the bundle receives the payload of the provider, it compare if the modified
branch is the same of the current project.. then automatically run the command
git pull origin {current_branch}
, and finally erase the cache.
You can see the git status of your project and the last commits in the url
http://my-domain.com/my-updater-prefix/