Configuração de implantação automática de código com GitHub Actions - mvneves/codedeploy-example GitHub Wiki
Esse roteiro considera que já existe um ambiente de implantação previamente configurado no serviço AWS CodeDeploy. Caso ainda não tenha feito, seguir os passos do roteiro sobre CodeDeploy.
- Criar um fork do repositório https://github.com/mvneves/codedeploy-example usando sua conta no GitHub
- Criar um diretório .github/workflows/ na raiz do novo repostório
- Criar um arquivo .yml dentro do diretório .github/workflows/ (exemplo: .github/workflows/deploy-aws.yml) contendo o seguinte conteúdo:
name: deploy-aws
on: [push]
jobs:
deploy:
name: Deploy to AWS
runs-on: ubuntu-latest
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.SECRET_ACCESS_KEY }}
aws-session-token: ${{ secrets.SESSION_TOKEN }}
aws-region: us-east-1
- name: Checkout
uses: actions/checkout@v2
- name: Upload to S3
run: |
mkdir deployment
rsync -Rr . deployment
zip -r deployment.zip deployment
aws s3 cp deployment.zip s3://${{ secrets.S3_BUCKET }}/
- name: Create deployment
run: |
aws deploy create-deployment --application-name APPLICATION_NAME \
--deployment-config-name CodeDeployDefault.OneAtATime \
--deployment-group-name DEPLOYMENT_GROUP \
--s3-location bucket=${{ secrets.S3_BUCKET }},bundleType=zip,key=deployment.zip
- Trocar APPLICATION_NAME pelo nome da aplicação usado no serviço AWS CodeDeploy; trocar DEPLOYMENT_GROUP pelo nome do grupo de implantação usando no serviço AWS CodeDeploy.
- Acessar a aba Settings e depois a opção Secrets no menu lateral
- Cadastrar as seguintes variáveis:
- ACCESS_KEY_ID: valor da variável aws_access_key_id obtido na página do AWS Educate
- SECRET_ACCESS_KEY: valor da variável aws_secret_access_key obtido na página do AWS Educate
- SESSION_TOKEN: valor da variável aws_session_token obtido na página do AWS Educate
- S3_BUCKET: nome do bucket no S3 usado para fazer o upload da aplicação
- Editar o arquivo hello.py e alterar a mensagem 'Hello, world"' para outra frase qualquer
- Commit e dar push na modificação
- Acessar a aba Actions do repositório e verificar o estado do job
- Caso o job tenha sido concluído com sucesso no passo anterior, verifique se a aplicação subiu com sucesso (acessar o IP público da máquina virtual pelo browser usando a porta 8080
Pronto! Se tudo funcionou corretamente, a partir de agora a aplicação será implantada automaticamente após cada push recebido no repositório.