Skip to content

feat: add VariablesButton component to workflow layout (#1837) #1

feat: add VariablesButton component to workflow layout (#1837)

feat: add VariablesButton component to workflow layout (#1837) #1

name: Deploy Background Jobs
on:
push:
branches:
- main
- dev
- feature*
paths:
- "apps/bg-jobs/**"
workflow_dispatch:
inputs:
environment:
description: "Environment to deploy to"
required: true
default: "dev"
type: choice
options:
- dev
- prod
force_deploy:
description: "Force deploy even if no changes detected"
required: false
default: false
type: boolean
jobs:
deploy:
runs-on: ubuntu-latest
environment: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.environment || (github.ref_name == 'main' && 'prod' || 'dev') }}
env:
AWS_REGION: ap-south-1
AWS_LAMBDA_ROLE_ARN: arn:aws:iam::301490598848:role/LambdaAdminRole
AWS_STEPFUNCTIONS_ROLE_ARN: arn:aws:iam::301490598848:role/StepFunctionsAdminRole
AWS_ACCOUNT_ID: "301490598848"
AWS_ACCESS_KEY_ID: ${{ secrets.BG_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.BG_AWS_SECRET_ACCESS_KEY }}
BRANCH_NAME: ${{ github.ref_name }}
ENV: ${{ github.ref_name == 'main' && 'prod' || 'dev' }}
SECRET_NAME: ${{ github.ref_name == 'main' && 'atoms-prod/bgjobs' || 'atoms-dev/bgjobs' }}
FORCE_DEPLOY: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.force_deploy || 'false' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
cache: "npm"
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.12"
- name: Debug environment variables
run: |
echo "AWS_REGION: $AWS_REGION"
echo "BRANCH_NAME: $BRANCH_NAME"
echo "Secret BG_AWS_ACCESS_KEY_ID exists: ${{ secrets.BG_AWS_SECRET_ACCESS_KEY != '' }}"
echo "Secret BG_AWS_SECRET_ACCESS_KEY exists: ${{ secrets.BG_AWS_SECRET_ACCESS_KEY != '' }}"
- name: Detect language and deploy
run: |
# Check if there are changes in Node.js or Python directories
NODE_CHANGES=$(git diff --name-only HEAD^ HEAD -- apps/bg-jobs/node/ 2>/dev/null || echo "")
PYTHON_CHANGES=$(git diff --name-only HEAD^ HEAD -- apps/bg-jobs/python/ 2>/dev/null || echo "")
# If force deploy is enabled, deploy regardless of changes
if [ "$FORCE_DEPLOY" = "true" ]; then
echo "Force deploy enabled - deploying all background jobs..."
echo "Deploying Node.js background jobs..."
./scripts/deploy-bg-jobs-node.sh
echo "Deploying Python background jobs..."
chmod +x ./scripts/deploy-bg-jobs-python.sh
./scripts/deploy-bg-jobs-python.sh
exit 0
fi
if [ -n "$NODE_CHANGES" ]; then
echo "Deploying Node.js background jobs..."
./scripts/deploy-bg-jobs-node.sh
fi
if [ -n "$PYTHON_CHANGES" ]; then
echo "Deploying Python background jobs..."
chmod +x ./scripts/deploy-bg-jobs-python.sh
./scripts/deploy-bg-jobs-python.sh
fi
if [ -z "$NODE_CHANGES" ] && [ -z "$PYTHON_CHANGES" ]; then
echo "No changes detected in bg-jobs directories"
fi
- name: Deploy API Gateway
run: |
echo "Deploying API Gateway for $ENV environment..."
chmod +x ./scripts/deploy-api-gateway.sh
./scripts/deploy-api-gateway.sh