gitup
, (*1)
Laravel package to upload git commits to server(s) via (s)ftp., (*2)
DISCLAIMER
This package is not fully tested, use it at your own risk!, (*3)
Screenshot
, (*4)
, (*5)
Why
We have multiple servers eg live, staging, testing, etc and client wanted us to upload task/story # X to staging only or story Y to live only that's when it was hard to track down files worked upon earlier and then upload them selectively; a time consuming process and nuisance so we created this package so that we can easily upload with one click selected stories to asked servers., (*6)
Requirements
- PHP >= 5.6
-
git
added to PATH env
-
FTP
and Zip
PHP extensions (both ship with PHP and usually turned on)
-
league/flysystem
FTP wrapper used by gitUp. (comes with laravel by default)
-
league/flysystem-sftp
Library used by gitUp to upload files via SFTP., (*7)
Installation
Install via composer, (*8)
composer require sarfraznawaz2005/gitup
For Laravel < 5.5:, (*9)
Add Service Provider to config/app.php
in providers
section, (*10)
Sarfraznawaz2005\GitUp\GitUpServiceProvider::class,
Run php artisan vendor:publish
to publish package's config and migration file. You should now have config/gitup.php
file published. It will also publish migration file in database/migrations
folder., (*11)
Run php artisan migrate
to create commits
table in your database., (*12)
Check and update config/gitup.php
file to setup config options including S(FTP) server information where you would like to upload., (*13)
By default, gitup UI is available at /gitup
route., (*14)
## How it Works ##, (*15)
For selected commits, we extract files out of them and create zip archive along with an script to extract this zip archive. The zip archive and extract script are then uploaded to selected server where extract script extracts the uploaded zip archive. Once the upload process is done, both zip archive and extract script are deleted from the server., (*16)
Uploading zip archive along with extract script has huge speed benefits as all committed files get uploaded in one shot as opposed to uploading each committed file individually., (*17)
## Similar Project ##
- floyer, (*18)
## License ##, (*19)
This code is published under the MIT License.
This means you can do almost anything with it, as long as the copyright notice and the accompanying license file is left intact., (*20)