0Pricing
PHP Academy · Aula

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/phpunit

Etapa 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-fpm

Segredos 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/phpunit

Barreiras 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=PSR12

Testes 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

  1. Configuração do Nginx e PHP-FPM
  2. Variáveis de ambiente e arquivos .env
  3. Implantação com GitHub Actions
  4. Conteinerização de uma aplicação PHP
← Voltar para PHP Academy