Introdução
No mundo do desenvolvimento web, um pipeline CI/CD eficiente é crucial para garantir que novos recursos e correções sejam implantados rapidamente e com segurança. Com ferramentas como GitHub Actions, os desenvolvedores podem automatizar e otimizar seu fluxo de trabalho. Neste artigo, exploraremos os benefícios do GitHub Actions e como configurá-lo para funcionar com um ambiente de hospedagem compartilhada, como o HostGator.
Benefícios do GitHub Actions
- Automação Completa: GitHub Actions permite a automação de processos desde testes até deploys, economizando tempo e minimizando erros manuais.
- Integração Fácil: Integra-se perfeitamente com o GitHub, simplificando a configuração e monitoramento dos workflows.
- Flexibilidade: Suporta múltiplos ambientes e linguagens, oferecendo uma ampla gama de ações pré-configuradas.
- Escalabilidade: Ideal para projetos de todos os tamanhos, desde pequenos sites pessoais até grandes aplicações corporativas.
Configuração Passo a Passo
1. Preparando o Ambiente
No HostGator, precisamos garantir que as ferramentas necessárias, como composer e drush, estejam instaladas e disponíveis no PATH.
# Instalar Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
# Instalar Drush
composer global require drush/drush
echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
2. Configurando o GitHub Actions
No seu repositório do GitHub, crie um arquivo .github/workflows/deploy.yml com o seguinte conteúdo:
name: CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: mbstring, xml, ctype, iconv, tokenizer, gd, openssl, json, pdo_mysql
- name: Cache Composer dependencies
uses: actions/cache@v2
with:
path: vendor
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer
- name: Install dependencies
run: composer install --prefer-dist --no-progress --no-suggest
- name: Run Code Sniffer
run: |
export PHPCS_MEMORY_LIMIT=512M
vendor/bin/phpcs --standard=Drupal --ignore=*.min.js,*.min.css, web/themes/custom/
- name: Add SSH Key and Known Hosts
run: |
mkdir -p ~/.ssh
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H 162.241.2.203 >> ~/.ssh/known_hosts
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
- name: Deploy to Production Server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
password: ${{ secrets.SSH_PASSWORD }}
port: 22
use_insecure_cipher: true
script: |
source ~/.bash_profile || true
cd ~/public_html
git pull
composer install
vendor/bin/drush @default.production cr
vendor/bin/drush @default.production updb -y
vendor/bin/drush @default.production cim -y
vendor/bin/drush @default.production cr
3. Configurando o HostGator
No HostGator, crie e configure o arquivo ~/.ssh/config para garantir que a autenticação SSH funcione corretamente:
nano ~/.ssh/config
Adicione o seguinte conteúdo:
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking no
4. Adicionando Chaves SSH ao GitHub
Adicione a chave pública SSH ao seu repositório no GitHub em Configurações > SSH e GPG keys.
Conclusão
Configurar o GitHub Actions para implantações automáticas em um ambiente de hospedagem compartilhada como o HostGator pode parecer desafiador inicialmente, mas os benefícios de automação, integração e escalabilidade valem a pena. Com essa configuração, você garante que seu fluxo de trabalho seja eficiente e suas alterações sejam implantadas de maneira rápida e segura.
Compartilhar esse artigo
- Log in ou registre-se para comentar