Little Laravel Helpers and Snippets
Last active
July 17, 2018 07:48
-
-
Save revooms/bbdd42ec31f1173925f6766667be2298 to your computer and use it in GitHub Desktop.
Little Laravel Helpers and Snippets
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://docs.gitlab.com/ce/ci/examples/laravel_with_gitlab_and_envoy/index.html | |
# | |
# Usage: envoy run deploy | |
@setup | |
$repository = 'git@gitlab.com:<YOURREPOSITORY>.git'; | |
$app_dir = '/var/www/<YOURAPPDIR>'; | |
# System settings, don't change a thing | |
$branch = str_replace("\n", '', `git rev-parse --abbrev-ref HEAD`); | |
$release = date('YmdHis'); | |
$releaseId = $branch . '/' . $release; | |
$new_release_dir = $app_dir .'/'. $branch . '/' . $release; | |
@endsetup | |
@servers(['develop' => '<YOURUSER@YOURHOST>']); | |
@task('debug') | |
echo " Branch: {{ $branch }}" | |
echo ' Repo: {{ $repository }}' | |
echo ' AppDir: {{ $app_dir }}' | |
echo ' Rel.Id: {{ $releaseId }}' | |
echo 'NewRel.: {{ $new_release_dir }}' | |
@endtask | |
@story('deploy') | |
clone_repository | |
run_composer | |
update_symlinks | |
laravel_cleanup | |
disk_usage | |
@endstory | |
@task('clone_repository') | |
echo 'Cloning repository ({{ $releaseId }})' | |
[ -d {{ $app_dir }} ] || mkdir {{ $app_dir }} | |
[ -d {{ $app_dir }}/{{ $branch }} ] || mkdir {{ $app_dir }}/{{ $branch }} | |
git clone --depth 1 -b {{ $branch }} {{ $repository }} {{ $new_release_dir }} | |
@endtask | |
@task('update_symlinks') | |
echo "Updating symlinks ({{ $releaseId }})" | |
echo '-- Linking .env file' | |
ln -nfs {{ $app_dir }}/.env-{{ $branch }} {{ $new_release_dir }}/.env | |
echo '-- Linking composer vendor folder' | |
rm -rf {{ $new_release_dir }}/vendor | |
ln -nfs {{ $app_dir }}/_vendor-{{ $branch }} {{ $new_release_dir }}/vendor | |
echo '-- Linking node_modules folder' | |
ln -nfs {{ $app_dir }}/_node_modules-{{ $branch }} {{ $new_release_dir }}/node_modules | |
echo "-- Linking storage directory" | |
rm -rf {{ $new_release_dir }}/storage | |
ln -nfs {{ $app_dir }}/_storage-{{ $branch }} {{ $new_release_dir }}/storage | |
echo '-- Linking current release' | |
ln -nfs {{ $new_release_dir }} {{ $app_dir }}/{{ $branch }}/current | |
@endtask | |
@task('laravel_prepare') | |
echo "Writing version from git tag ({{ $releaseId }})" | |
cd {{ $app_dir }}/{{ $branch }}/current | |
php artisan goodfeeds:version | |
@endtask | |
@task('laravel_cleanup') | |
echo "Resetting Laravel caches and views ({{ $releaseId }})" | |
cd {{ $app_dir }}/{{ $branch }}/current | |
echo "-- Clearing cache" | |
php artisan cache:clear; | |
echo "-- Clearing views" | |
php artisan view:clear; | |
echo "-- Caching routes" | |
php artisan route:cache; | |
echo "-- Clearing config" | |
php artisan config:clear; | |
@endtask | |
@task('disk_usage') | |
echo "Disk usage ({{ $releaseId }})"; | |
du -h --max-depth=1 {{ $app_dir }}/{{ $branch }} | |
@endtask | |
@task('run_composer') | |
echo "Running composer ({{ $releaseId }})" | |
echo '-- Pre Setup'; | |
cd {{ $new_release_dir }} | |
chmod a+w bootstrap/cache | |
echo '-- Starting composer'; | |
composer install --prefer-dist --no-scripts -q -o | |
@endtask | |
@task('run_npm') | |
echo "Running NPM ({{ $releaseId }})" | |
echo '-- Starting NPM' | |
cd {{ $new_release_dir }} | |
npm install | |
@endtask |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$bar = $this->output->createProgressBar(count()); | |
$bar->advance(); | |
$bar->finish(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Mass update models via tinker | |
DB::table('userurls')->where('id', '<', 51)->update(array('is_private' => 1)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment