Skip to content

Commit 61801a9

Browse files
committed
wip Automatic update
1 parent 2d3170e commit 61801a9

File tree

1 file changed

+153
-0
lines changed

1 file changed

+153
-0
lines changed

Envoy.blade.php

+153
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
@setup
2+
require __DIR__.'/vendor/autoload.php';
3+
4+
$branch = "master";
5+
$server = "bimbala.com";
6+
$userAndServer = 'server@'. $server;
7+
$repository = "bimbalacom/bimbalacom";
8+
$baseDir = "/home/bimbala/bimbalacom";
9+
$releasesDir = "{$baseDir}/releases";
10+
$currentDir = "{$baseDir}/current";
11+
$newReleaseName = date('Ymd-His');
12+
$newReleaseDir = "{$releasesDir}/{$newReleaseName}";
13+
$user = get_current_user();
14+
15+
function logMessage($message) {
16+
return "echo '\033[32m" .$message. "\033[0m';\n";
17+
}
18+
@endsetup
19+
20+
@servers(['local' => '127.0.0.1', 'remote' => $userAndServer])
21+
22+
@macro('deploy')
23+
startDeployment
24+
cloneRepository
25+
runComposer
26+
generateAssets
27+
updateSymlinks
28+
optimizeInstallation
29+
backupDatabase
30+
migrateDatabase
31+
blessNewRelease
32+
cleanOldReleases
33+
finishDeploy
34+
@endmacro
35+
36+
@macro('deploy-code')
37+
deployOnlyCode
38+
@endmacro
39+
40+
@task('startDeployment', ['on' => 'local'])
41+
{{ logMessage("🏃 Starting deployment...") }}
42+
git checkout {{ $branch }}
43+
git pull origin {{ $branch }}
44+
@endtask
45+
46+
@task('cloneRepository', ['on' => 'remote'])
47+
{{ logMessage("🌀 Cloning repository...") }}
48+
[ -d {{ $releasesDir }} ] || mkdir {{ $releasesDir }};
49+
cd {{ $releasesDir }}
50+
51+
# Create the release dir
52+
mkdir {{ $newReleaseDir }}
53+
54+
# Clone the repo
55+
git clone --depth 1 --branch {{ $branch }} git@github.com:{{ $repository }} {{ $newReleaseName }}
56+
57+
# Configure sparse checkout
58+
cd {{ $newReleaseDir }}
59+
git config core.sparsecheckout true
60+
echo "*" > .git/info/sparse-checkout
61+
echo "!storage" >> .git/info/sparse-checkout
62+
echo "!public/build" >> .git/info/sparse-checkout
63+
git read-tree -mu HEAD
64+
65+
# Mark release
66+
cd {{ $newReleaseDir }}
67+
echo "{{ $newReleaseName }}" > public/release-name.txt
68+
@endtask
69+
70+
@task('runComposer', ['on' => 'remote'])
71+
{{ logMessage("🚚 Running Composer...") }}
72+
cd {{ $newReleaseDir }}
73+
composer install --prefer-dist --no-scripts --no-dev -q -o
74+
@endtask
75+
76+
77+
@task('generateAssets', ['on' => 'remote'])
78+
{{ logMessage("🌅 Generating assets...") }}
79+
cd {{ $newReleaseDir }}
80+
yarn run production --progress false
81+
@endtask
82+
83+
@task('updateSymlinks', ['on' => 'remote'])
84+
{{ logMessage("🔗 Updating symlinks to persistent data...") }}
85+
# Remove the storage directory and replace with persistent data
86+
rm -rf {{ $newReleaseDir }}/storage
87+
cd {{ $newReleaseDir }}
88+
ln -nfs {{ $baseDir }}/persistent/storage storage
89+
90+
# Import the environment config
91+
cd {{ $newReleaseDir }}
92+
ln -nfs {{ $baseDir }}/.env .env
93+
@endtask
94+
95+
@task('optimizeInstallation', ['on' => 'remote'])
96+
{{ logMessage("✨ Optimizing installation...") }}
97+
cd {{ $newReleaseDir }}
98+
php artisan clear-compiled
99+
@endtask
100+
101+
@task('backupDatabase', ['on' => 'remote'])
102+
{{ logMessage("📀 Backing up database...") }}
103+
cd {{ $newReleaseDir }}
104+
php artisan backup:run
105+
@endtask
106+
107+
@task('migrateDatabase', ['on' => 'remote'])
108+
{{ logMessage("🙈 Migrating database...") }}
109+
cd {{ $newReleaseDir }}
110+
php artisan migrate --force
111+
php artisan db:seed --class MembersSeeder --force
112+
@endtask
113+
114+
@task('blessNewRelease', ['on' => 'remote'])
115+
{{ logMessage("🙏 Blessing new release...") }}
116+
ln -nfs {{ $newReleaseDir }} {{ $currentDir }}
117+
cd {{ $newReleaseDir }}
118+
119+
php artisan horizon:terminate
120+
php artisan config:clear
121+
php artisan cache:clear
122+
php artisan config:cache
123+
php artisan view:cache
124+
#php artisan schedule-monitor:sync
125+
126+
sudo service php8.0-fpm restart
127+
sudo supervisorctl restart all
128+
@endtask
129+
130+
@task('cleanOldReleases', ['on' => 'remote'])
131+
{{ logMessage("🚾 Cleaning up old releases...") }}
132+
# Delete all but the 3 most recent.
133+
cd {{ $releasesDir }}
134+
ls -dt {{ $releasesDir }}/* | tail -n +4 | xargs -d "\n" sudo chown -R forge .
135+
ls -dt {{ $releasesDir }}/* | tail -n +4 | xargs -d "\n" rm -rf
136+
@endtask
137+
138+
@task('finishDeploy', ['on' => 'local'])
139+
{{ logMessage("🚀 Application deployed!") }}
140+
@endtask
141+
142+
@task('deployOnlyCode',['on' => 'remote'])
143+
{{ logMessage("💻 Deploying code changes...") }}
144+
cd {{ $currentDir }}
145+
git pull origin {{ $branch }}
146+
php artisan config:clear
147+
php artisan cache:clear
148+
php artisan config:cache
149+
php artisan view:cache
150+
sudo service php8.0-fpm restart
151+
#php artisan schedule-monitor:sync
152+
sudo supervisorctl restart all
153+
@endtask

0 commit comments

Comments
 (0)