#!/usr/bin/env bash echo -n "SSH password: " read password echo "Start build ..." dest_dir="/path/to/install/your/site/" user="user" host="example.com" archive_name="release.tar.gz" env="prod" echo "Run composer ..." composer install #composer dump-autoload --optimize --no-dev --classmap-authoritative echo "Done." echo "Generate Fos JS routes ..." php bin/console fos:js-routing:dump --target=public/js/fos_js_routes.json --env=prod --format=json echo "Done." echo "Install assets ..." yarn install echo "Done." echo "Build assets ..." yarn encore production echo "Done." echo "Compress files ..." tar -czf $arhive_name \ bin \ config \ node_modules \ public \ src \ templates \ translations \ vendor \ .htaccess \ composer.json \ composer.lock echo "Done." echo "Deploy files to the server ..." sshpass -p $password scp $arhive_name $user@$host:$dest_dir sshpass -p $password scp ./.env $user@$host:$dest_dir.env sshpass -p $password ssh $user@$host "cd $dest_dir && tar -xzf $archive_name && rm $archive_name" sshpass -p $password ssh $user@$host "cd $dest_dir && composer dump-env $env && php bin/console cache:clear --env=$env" echo "Cleanup files ..." rm $archive_name echo "Done." echo "Finished."