mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
63 lines
1.7 KiB
YAML
63 lines
1.7 KiB
YAML
name: Lambda smoke test
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
dockerfile_path:
|
|
required: true
|
|
type: string
|
|
build_context:
|
|
required: false
|
|
default: "."
|
|
type: string
|
|
service_name:
|
|
required: true
|
|
type: string
|
|
|
|
jobs:
|
|
smoke-test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Build Lambda image
|
|
run: |
|
|
docker build \
|
|
--platform linux/amd64 \
|
|
-f ${{ inputs.dockerfile_path }} \
|
|
-t ${{ inputs.service_name }}-smoke-test:latest \
|
|
${{ inputs.build_context }}
|
|
|
|
- name: Start Lambda container
|
|
run: |
|
|
docker run -d --name ${{ inputs.service_name }}-smoke-test \
|
|
-p 9000:8080 \
|
|
${{ inputs.service_name }}-smoke-test:latest
|
|
|
|
- name: Invoke Lambda and check for import errors
|
|
run: |
|
|
sleep 2
|
|
response=$(curl -s -X POST \
|
|
http://localhost:9000/2015-03-31/functions/function/invocations \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"Records":[{"body":"{}"}]}')
|
|
|
|
echo "Response: $response"
|
|
|
|
if [ -z "$response" ]; then
|
|
echo "No response from Lambda RIE"
|
|
exit 1
|
|
fi
|
|
|
|
if echo "$response" | grep -qE 'ImportModuleError|ModuleNotFoundError|ImportError'; then
|
|
echo "Import error detected in handler"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Dump container logs
|
|
if: always()
|
|
run: docker logs ${{ inputs.service_name }}-smoke-test
|
|
|
|
- name: Tear down container
|
|
if: always()
|
|
run: docker rm -f ${{ inputs.service_name }}-smoke-test
|