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 AWS Lambda with Serverless | |
on: | |
push: | |
branches: | |
- main # Adjust for your deployment branch | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
- name: Verify Python installation | |
run: python --version | |
- name: Install Serverless Framework | |
run: | | |
npm install -g [email protected] | |
serverless --version # Debugging: Check installed version | |
- name: Install Serverless Plugins | |
run: | | |
sls plugin install -n serverless-wsgi | |
sls plugin install -n serverless-python-requirements | |
- name: Installing Requirements | |
run: pip install -r requirements.txt | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
- name: Install only production dependencies | |
run: npm ci --only=production # Only production dependencies are deployed | |
- name: Installing the prune Plugin | |
run: npm install serverless-prune-plugin | |
- name: Deploy with Serverless | |
env: | |
SERVERLESS_ACCESS_KEY: ${{ secrets.SERVERLESS_ACCESS_KEY }} | |
run: serverless deploy --verbose |