mirror of
https://github.com/maplibre/martin.git
synced 2024-12-24 23:45:42 +03:00
35 lines
1.3 KiB
Bash
35 lines
1.3 KiB
Bash
|
#!/usr/bin/env bash
|
|||
|
set -euo pipefail
|
|||
|
|
|||
|
have () {
|
|||
|
hash -- "$1" 2>&-
|
|||
|
}
|
|||
|
|
|||
|
if ! have sam; then
|
|||
|
echo "The AWS Serverless Application Model Command Line Interface (AWS SAM CLI) "
|
|||
|
echo "must be installed: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html"
|
|||
|
exit 1
|
|||
|
fi
|
|||
|
|
|||
|
# Just send a single request using `sam local invoke` to verify that
|
|||
|
# the server boots, finds a source to serve, and can handle a request.
|
|||
|
# TODO Run the fuller integration suite against this.
|
|||
|
# In doing so, switch from `sam local invoke`, which starts and stops the
|
|||
|
# server, to `sam local start-api`, which keeps it running.
|
|||
|
|
|||
|
EVENT=$(sam local generate-event apigateway http-api-proxy \
|
|||
|
| jq '.rawPath="/"|.requestContext.http.method="GET"')
|
|||
|
|
|||
|
# `sam build` will copy the _entire_ context to a temporary directory,
|
|||
|
# so just give it the files we need
|
|||
|
mkdir -p .github/files/lambda-layer/bin/
|
|||
|
if ! install ${MARTIN_BIN:-target/debug/martin} .github/files/lambda-layer/bin/; then
|
|||
|
echo "Specify the binary, e.g. ‘MARTIN_BIN=target/x86_64-linux-unknown-musl/release/martin just test-lambda’"
|
|||
|
exit 1
|
|||
|
fi
|
|||
|
cp ./tests/fixtures/pmtiles2/webp2.pmtiles .github/files/lambda-function/
|
|||
|
sam build -t .github/files/lambda.yaml
|
|||
|
|
|||
|
echo "$EVENT" | sam local invoke -e - \
|
|||
|
| jq -ne 'input.statusCode==200'
|