diff --git a/workflows/aws.yml b/workflows/aws.yml new file mode 100755 index 0000000..faf15f1 --- /dev/null +++ b/workflows/aws.yml @@ -0,0 +1,42 @@ +name: Update Dashboard Lambda Image + +on: + push: + branches: [ main, dev ] + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: us-west-2 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v1 + + - name: Extract branch name + shell: bash + run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV + + - name: Build, tag, and push image to Amazon ECR, then update Lambda code + id: build-image + env: + REGISTRY: ${{ steps.login-ecr.outputs.registry }} + REPOSITORY: dash-${{secrets.DEPLOYMENT_NAME}} + IMAGE_TAG: ${{ env.BRANCH_NAME }} + LAMBDA_NAME: dash-${{secrets.DEPLOYMENT_NAME}}-${{ env.BRANCH_NAME }}-LambdaFunction + run: | + docker build -t $REGISTRY/$REPOSITORY:$IMAGE_TAG . + docker push $REGISTRY/$REPOSITORY:$IMAGE_TAG + aws lambda update-function-code \ + --function-name $LAMBDA_NAME \ + --image-uri $REGISTRY/$REPOSITORY:$IMAGE_TAG