Implantação com GitHub Actions
Automatize as etapas de compilação, teste e implantação via SSH em um fluxo de trabalho do GitHub Actions.
Implantação com GitHub Actions é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.
O que é o GitHub Actions?
GitHub Actions é uma plataforma de integração e entrega contínuas integrada ao GitHub. Os fluxos de trabalho definidos em .github/workflows/*.yml são executados automaticamente após um envio, uma solicitação de integração ou eventos agendados.
Estrutura básica de um fluxo de trabalho
Um fluxo de trabalho consiste em uma ou mais tarefas, cada uma com suas etapas.
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: "8.3"
- name: Install dependencies
run: composer install --no-dev --optimize-autoloader
- name: Run tests
run: vendor/bin/phpunitEtapa de implantação via SSH
Implante em um servidor via SSH depois que os testes forem aprovados.
- name: Deploy to server
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /srv/myapp
git pull origin main
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan config:cache
php artisan route:cache
sudo systemctl reload php8.3-fpmSegredos do GitHub
Armazene valores sensíveis, como chaves SSH, tokens de API e senhas de banco de dados, como segredos criptografados do repositório em Configurações → Segredos e variáveis.
Armazenamento de dependências em cache
Armazene os pacotes do Composer em cache entre as execuções para acelerar os fluxos de trabalho.
- name: Cache Composer packages
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-composer-${{ hashFiles("composer.lock") }}Execução de testes
Inclua um contêiner de serviço MySQL ou PostgreSQL para os testes de integração.
services:
mysql:
image: mysql:8
env:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: secret
ports: [3306:3306]Variáveis de ambiente no Actions
Passe os segredos como variáveis de ambiente para as etapas do fluxo de trabalho.
- name: Run tests
env:
DB_HOST: 127.0.0.1
DB_DATABASE: test
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
run: vendor/bin/phpunitBarreiras de qualidade do código
Impeça as implantações quando as verificações de qualidade do código falharem.
- name: PHPStan static analysis
run: vendor/bin/phpstan analyse src --level=6
- name: PHP_CodeSniffer
run: vendor/bin/phpcs src --standard=PSR12Testes em matriz
Teste simultaneamente com várias versões do PHP.
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
php: ["8.2", "8.3"]
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}Estratégias de implantação
Abordagens comuns: git pull direto (simples), rsync (sincronização rápida de arquivos), azul-verde (sem indisponibilidade) e Deployer PHP (sem indisponibilidade de forma automatizada). Escolha com base na tolerância à indisponibilidade.
Resumo
Defina os fluxos de trabalho em .github/workflows/*.yml. Execute testes a cada envio e implante nas mesclagens do ramo principal. Armazene as dependências em cache, guarde os segredos nos Segredos do GitHub e adicione barreiras de qualidade antes da implantação.
Verificação rápida
Onde ficam armazenados valores sensíveis, como chaves SSH, para o GitHub Actions?
Perguntas Frequentes
A aula “Implantação com GitHub Actions” é grátis?
Sim — o texto completo de “Implantação com GitHub Actions” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.
O que vou aprender em “Implantação com GitHub Actions”?
Automatize as etapas de compilação, teste e implantação via SSH em um fluxo de trabalho do GitHub Actions. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar PHP Academy?
Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Implantação com GitHub Actions”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de PHP Academy?
Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Configuração do Nginx e PHP-FPM
- Variáveis de ambiente e arquivos .env
- Implantação com GitHub Actions
- Conteinerização de uma aplicação PHP