Skip to content

build: clean nestjs #24

build: clean nestjs

build: clean nestjs #24

name: Deploy Lambda to AWS
on:
push:
branches:
- qa
jobs:
deploy:
name: Build and Deploy Lambda
runs-on: ubuntu-latest
environment: homolog
permissions:
id-token: write # Permission to obtain OIDC token
contents: read # Permission to checkout
steps:
- name: Checkout source
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Build and package Lambda
run: npx ts-node infra/scripts/build-lambda.ts
- name: Set Lambda function name and NODE_ENV based on branch
id: set-lambda-env
run: |
echo "LAMBDA_NAME=ipecode-abnmo-lambda-backend-qa" >> $GITHUB_ENV
echo "NODE_ENV=homolog" >> $GITHUB_ENV
- name: Configure AWS credentials with OIDC
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
aws-region: us-east-1
- name: Upload Lambda & set env vars
env:
DB_HOST: ${{ secrets.DB_HOST }}
DB_PORT: ${{ secrets.DB_PORT }}
DB_DATABASE: ${{ secrets.DB_DATABASE }}
DB_USERNAME: ${{ secrets.DB_USERNAME }}
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
API_BASE_URL: ${{ secrets.API_BASE_URL }}
API_PORT: ${{ secrets.API_PORT }}
NODE_ENV: ${{ env.NODE_ENV }}
run: |
if [ ! -f lambda.zip ]; then
echo "❌ lambda.zip not found!"
exit 1
fi
echo "🚀 Deploying to Lambda: $LAMBDA_NAME"
aws lambda update-function-configuration \
--function-name $LAMBDA_NAME \
--environment "Variables={\
DB_HOST=$DB_HOST,\
DB_PORT=$DB_PORT,\
DB_DATABASE=$DB_DATABASE,\
DB_USERNAME=$DB_USERNAME,\
DB_PASSWORD=$DB_PASSWORD,\
API_BASE_URL=$API_BASE_URL,\
API_PORT=$API_PORT,\
NODE_ENV=$NODE_ENV\
}"
aws lambda update-function-code \
--function-name $LAMBDA_NAME \
--zip-file fileb://lambda.zip