image

Access unlimited bootcamps and 650+ courses forever

60
%OFF
Eduardo Lentz
Eduardo Lentz13/03/2025 13:35
Share
Nexa - Análise Avançada de Imagens e Texto com IA na AWSRecommended for youNexa - Análise Avançada de Imagens e Texto com IA na AWS

Como Automatizei o Deploy do Meu Site Estático na AWS S3 com GitHub Actions

    Introdução

    Recentemente, decidi automatizar o deploy do meu site de portfólio, que é um site estático hospedado no Amazon S3. A ideia era que, a cada nova alteração no repositório do GitHub, os arquivos fossem automaticamente sincronizados com o bucket S3, sem precisar fazer upload manualmente.

    Para isso, utilizei o GitHub Actions para criar um pipeline de CI/CD. Neste artigo, compartilho como fiz essa automação e como você também pode aplicá-la no seu projeto.

    Configurando o Ambiente AWS - Criando um Bucket no S3

    Meu site é um site estático hospedado no Amazon S3. Se quiser saber mais sobre como configurar um bucket S3 para hospedar sites estáticos, confira meu outro artigo no Medium, Como hospedei minha Landing Page profissional na AWS S3: Um Guia Passo a Passo

    Criando um Usuário IAM

    Para que o GitHub Actions tenha permissão de acessar o bucket S3, criei um usuário IAM:

    1. Acesse o AWS IAM e crie um novo usuário com acesso programático.
    2. Anexe a política AmazonS3FullAccess ou crie uma política personalizada com permissões restritas ao seu bucket.
    3. Copie as credenciais (Access Key e Secret Key) e armazene-as no GitHub como Secrets.

    No GitHub, fui em Settings > Secrets and variables > Actions e adicionei:

    image

    Criando o Workflow no GitHub Actions

    Agora, configurei um workflow para que, a cada push no repositório, os arquivos fossem enviados ao S3 automaticamente. Para isso, criei um arquivo .github/workflows/deploy.yml no repositório com o seguinte conteúdo:

    name: Deploy para S3
    on:
    push:
      branches:
        - main
    jobs:
    deploy:
      runs-on: ubuntu-latest
      steps:
        - name: Checkout do código
          uses: actions/checkout@v3
        - name: Configurar credenciais da AWS
          uses: aws-actions/configure-aws-credentials@v1
          with:
            aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
            aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
            aws-region: us-east-2
      - name: Sincronizar arquivos com o S3
          run: |
            aws s3 sync . s3://eduardolentz.com.br --delete
    

    Isso garante que qualquer alteração no branch main seja automaticamente enviada para o S3.

    Para ver mias do código para acessar o repositório aqui.

    Conclusão

    Com essa automação, agora toda vez que faço uma modificação no código e faço um git push, meu site é atualizado automaticamente no S3.

    Gostei muito de implementar essa automação, achei o processo bem intuitivo e fácil de configurar. Como o projeto ainda é recente, faço várias alterações no código e essa automação me ajudou bastante, pois agora não preciso mais enviar os arquivos manualmente para o S3 toda vez que faço uma atualização. Imagino que para projetos maiores seja essencial.

    Se quiser implementar algo parecido no seu projeto, espero que esse artigo tenha te ajudado! Se tiver dúvidas, deixe um comentário. 🚀

    Share
    Recommended for you
    Microsoft Certification Challenge #3 DP-100
    Decola Tech 2025
    Microsoft AI for Tech - Copilot Studio
    Comments (0)
    Recommended for you