build: clean nestjs #24
Workflow file for this run
This file contains hidden or 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 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 |