https://github.com/tayron/git-deploy-shell-script
Exemplo de script de deploy usando Shell Script
https://github.com/tayron/git-deploy-shell-script
deployment-automation git php shellscript
Last synced: 3 months ago
JSON representation
Exemplo de script de deploy usando Shell Script
- Host: GitHub
- URL: https://github.com/tayron/git-deploy-shell-script
- Owner: tayron
- Created: 2019-01-18T17:09:16.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-12-26T16:25:05.000Z (over 5 years ago)
- Last Synced: 2025-01-20T23:34:15.875Z (4 months ago)
- Topics: deployment-automation, git, php, shellscript
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Deploy com Git usando Shell Script
Acesse a pasta **/var/www/html** do servidor de produção via ssh e clone seu projeto
```ssh
git clone --branch="staging" --depth 1 https://url-do-projeto-git-aqui
```Crie um arquivo ssh chamado: **deploy_staging.sh** com o seguinte conteúdo:
```ssh
#!/bin/bashVERMELHO='\033[0;31m'
VERDE='\033[0;32m'
AZUL='\033[0;34m'
FIM_COR='\033[0m'dir_www="/root/projetos/"
dir_project="site.com.br"printf ${VERDE}
echo " ------------------------------------------------------- "
echo "| |"
echo "| INICIO DO DEPLOY |"
echo "| |"
echo " ------------------------------------------------------- "
printf ${FIM_COR}echo
echo
printf ${VERDE}"1) Removendo backup antigo"${FIM_COR}
echo
printf ${AZUL}
rm -rf "${dir_www}${dir_project}_backup"
printf ${FIM_COR}
echoecho
printf ${VERDE}"2) Realizando novo backup"${FIM_COR}
echo
printf ${AZUL}
cp -rf "${dir_www}${dir_project}" "${dir_www}${dir_project}_backup"
printf ${FIM_COR}
echoecho
printf ${VERDE}"3) Abrindo diretório: ${dir_www}${dir_project}"${FIM_COR}
echo
printf ${AZUL}
cd "${dir_www}${dir_project}"
printf ${FIM_COR}
echoecho
printf ${VERDE}"4) Atualizando repositório"${FIM_COR}
echo
printf ${AZUL}
git reset --hard HEAD
git pull
printf ${FIM_COR}
echoecho
printf ${VERDE}"5) Copiando arquivo de configurações do backup para dentro do projeto"${FIM_COR}
echo
printf ${AZUL}
cp -rf "${dir_www}${dir_project}_backup/app/config/database.php" "${dir_www}${dir_project}/app/config/database.php"
cp -rf "${dir_www}${dir_project}_backup/app/config/app.php" "${dir_www}${dir_project}/app/config/app.php"
printf ${FIM_COR}
echoecho
printf ${VERDE}"6) Instalando novas dependências"${FIM_COR}
echo
printf ${AZUL}
docker exec -t container_name composer install
printf ${FIM_COR}
echoecho
printf ${VERDE}"7) Atualizando as tabelas do banco"
echo
printf ${AZUL}
docker exec -t container_name php artisan migrate
printf ${FIM_COR}
echoecho
printf ${VERDE}"8) Atualizando serviço agendados: cron"
echo
printf ${AZUL}
docker cp ${dir_www}${dir_project}/build/crontab container_name:/etc/crontab
docker exec -i container_name echo -en '\n\n' >> /etc/crontab
docker exec -i container_name crontab /etc/crontab
docker exec -i container_name crontab -l
docker exec -i container_name service cron status
printf ${FIM_COR}
echoprintf ${VERDE}
echo " ------------------------------------------------------- "
echo "| |"
echo "| FIM DO DEPLOY |"
echo "| |"
echo "| ¯\_(ツ)_/¯ |"
echo "| |"
echo " ------------------------------------------------------- "
printf ${FIM_COR}```
Crie um arquivo ssh chamado: **deploy_revert.sh** com o seguinte conteúdo:
```ssh
#!/bin/bashdir_www="/var/www/html/"
dir_project="site"echo " ------------------------------------------------------- "
echo "| |"
echo "| INICIO DO REVERSAO |"
echo "| |"
echo " ------------------------------------------------------- "
echo
echoecho "1) Removendo deploy atual"
sudo rm -rf "${dir_www}${dir_project}"
echoecho "2) Restaurando backup"
echo
sudo cp -rf "${dir_www}${dir_project}_backup" "${dir_www}${dir_project}"
echoecho "3) Abrindo diretório: ${dir_www}${dir_project}"
cd "${dir_www}${dir_project}"echo "4) Limpando cache";
echo
sudo ./clearCache.sh
echoecho "5) Dando permissões em todos os arquivos"
echo
sudo chmod 755 *
echoecho "6) Dando permissões nas pastas logs, tmp e uploads"
echo
sudo chmod 777 -R logs/
sudo chmod 777 -R tmp/
sudo chmod 777 -R webroot/uploads/
echoecho "7) Removendo permissão dos arquivos Shell Script"
echo
sudo chmod 760 *.sh
echoecho " ------------------------------------------------------- "
echo "| |"
echo "| FIM DA REVERSÃO |"
echo "| |"
echo "| ¯\_(ツ)_/¯ |"
echo "| |"
echo " ------------------------------------------------------- "```
## Utilização dos scripts
###Exemplo de uso para efetuar deploy:
```sh
ssh [email protected] "./deploy_staging.sh"```
### Exemplo de uso para reverter o último deploy:```sh
ssh [email protected] "./deploy_revert.sh"
```