-
Notifications
You must be signed in to change notification settings - Fork 0
46 lines (46 loc) · 2.11 KB
/
main.yml
File metadata and controls
46 lines (46 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
name: Deploy to Lambda
on: [push]
jobs:
deploy_source:
name: Deploy Lambda
runs-on: ubuntu-latest
strategy:
matrix:
function: ["Hello_World","Sirportly_Pushover"]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set variables
run: |
echo "RUNTIME=python3.11" >> $GITHUB_ENV
echo "RUNROLE=arn:aws:iam::532185013854:role/dbt-lambda-functions-runtime" >> $GITHUB_ENV
echo "DIR=func_${{ matrix.function }}" >> $GITHUB_ENV
echo "ZIPFILE=func_${{ matrix.function }}.zip" >> $GITHUB_ENV
echo "FUNCTION=dlf-${{ github.ref_name }}_${{ matrix.function }}" >> $GITHUB_ENV
- name: Create Archive
run: 7z a ${{ env.ZIPFILE }} ./${{ env.DIR }}/* ./includes/*
- name: Check if Lambda Function exists
id: chkawsfunc
continue-on-error: true
shell: bash
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }}
run: aws lambda get-function --function-name ${{ env.FUNCTION }}
- name: Create Lambda Function if not exist
if: ${{ steps.chkawsfunc.outcome == 'failure' }}
shell: bash
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }}
run: aws lambda create-function --function-name ${{ env.FUNCTION }} --runtime ${{ env.RUNTIME }} --role ${{ env.RUNROLE }} --handler lambda_function.lambda_handler --package-type Zip --zip-file fileb://${{ env.ZIPFILE }}
- name: Push to Lambda
if: ${{ steps.chkawsfunc.outcome == 'success' }}
shell: bash
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }}
run: aws lambda update-function-code --function-name ${{ env.FUNCTION }} --zip-file fileb://${{ env.ZIPFILE }}