[CONF] - Ajuste ci cd #28
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy Lambda | |
on: | |
push: | |
branches: | |
- main | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_REGION: us-east-1 | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout do repositório | |
uses: actions/checkout@v4 | |
- name: Configurar credenciais AWS | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-region: ${{ env.AWS_REGION }} | |
- name: Instalar dependências necessárias | |
run: sudo apt-get update && sudo apt-get install -y xz-utils zip | |
# Criação do pacote de deployment | |
- name: Construir pacote de implantação | |
run: | | |
set -e | |
make build | |
if [ ! -f deployment_package.zip ]; then | |
echo "Arquivo deployment_package.zip não encontrado!"; | |
exit 1; | |
fi | |
# Copiar o arquivo de deployment para o diretório onde o Terraform pode acessá-lo | |
- name: Mover arquivo para o diretório do Terraform | |
run: mv deployment_package.zip infra/deployment_package.zip | |
# Instalar o Terraform | |
- name: Instalar Terraform | |
uses: hashicorp/setup-terraform@v2 | |
# Cache do Terraform (melhora a performance) | |
- name: Cache do Terraform | |
uses: actions/cache@v3 | |
with: | |
path: ~/.terraform.d | |
key: terraform-${{ runner.os }}-${{ hashFiles('infra/**/*.tf') }} | |
restore-keys: terraform-${{ runner.os }}- | |
# Inicializar Terraform | |
- name: Inicializar Terraform | |
working-directory: infra # Certifique-se de que 'infra' está no local correto | |
run: terraform init | |
# Planejar o Terraform | |
- name: Planejar Terraform | |
working-directory: infra | |
run: terraform plan -out=tfplan | |
# Aplicar Terraform | |
- name: Aplicar Terraform | |
working-directory: infra | |
run: terraform apply -auto-approve tfplan | |
# Limpeza pós-deploy | |
- name: Limpeza pós-deploy | |
run: make clean | |
# Notificar sucesso do deploy | |
- name: Notificar sucesso do deploy | |
if: success() | |
run: echo "Deploy concluído com sucesso para LambdaProcessadorVideos em $AWS_REGION!" | |
# Notificar falha do deploy | |
- name: Notificar falha do deploy | |
if: failure() | |
run: echo "Falha no deploy da LambdaProcessadorVideos. Verifique os logs." |