Skip to content

Commit c967043

Browse files
committed
refactor: update ecr catalog data on release
1 parent 7feec9f commit c967043

3 files changed

Lines changed: 14 additions & 75 deletions

File tree

.github/workflows/build-and-release.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,4 +159,12 @@ jobs:
159159
run: npx semantic-release
160160
env:
161161
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
162-
GHCR_PAT: ${{ secrets.GHCR_PAT }}
162+
GHCR_PAT: ${{ secrets.GHCR_PAT }}
163+
164+
- name: Update ECR Public Gallery catalog
165+
if: env.SHOULD_RELEASE == 'true'
166+
run: |
167+
aws ecr-public put-repository-catalog-data \
168+
--region us-east-1 \
169+
--repository-name lambda-shell-runtime \
170+
--catalog-data file://catalog.json

CHANGELOG.md

Lines changed: 0 additions & 74 deletions
This file was deleted.

catalog.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"description": "Custom AWS Lambda runtime to run Bash functions as serverless applications",
3+
"aboutText": "**lambda-shell-runtime** is a custom AWS Lambda runtime that lets you deploy\n**shell scripts and Bash functions** as serverless applications.\n\nIt is designed for engineers who want the **simplicity and composability of Bash**\nwith the scalability of AWS Lambda — without introducing heavyweight runtimes.\n\nThe runtime is built on top of official AWS Lambda base images and provides\ndirect access to common CLI tools such as `jq`, `curl`, and optional AWS utilities.\n\n### Why Bash on Lambda?\n\n- Minimal dependencies\n- Fast iteration and debugging\n- Ideal for glue code, automation, APIs, and data pipelines\n- Familiar Unix tooling instead of large language runtimes\n\n### Runtime variants\n\nThe image is published in three optimized variants:\n\n- **tiny** – essential tools (`jq`, `curl`, `http-cli`)\n- **micro** – tiny + lightweight AWS API access (`awscurl`)\n- **full** – tiny + full AWS CLI\n\nAll variants support **ARM64 and x86_64** architectures and work with\nthe Lambda Runtime Interface Emulator for local testing.",
4+
"usageText": "### Basic usage\n\nCreate a Bash handler:\n\n```bash\n# handler.sh\nmain() {\n local event=\"$1\"\n echo '{\"message\":\"Hello from Bash Lambda\",\"input\":'\"$event\"'}'\n}\n```\n\nCreate a Dockerfile:\n\n```dockerfile\nFROM public.ecr.aws/l9f6r9f5/lambda-shell-runtime:tiny\nCOPY handler.sh .\n```\n\nDeploy the image as an AWS Lambda function using **container images**.\n\nSet the Lambda handler to:\n\n```\nhandler.main\n```\n\n---\n\n### Available images\n\n```bash\npublic.ecr.aws/l9f6r9f5/lambda-shell-runtime:tiny\npublic.ecr.aws/l9f6r9f5/lambda-shell-runtime:micro\npublic.ecr.aws/l9f6r9f5/lambda-shell-runtime:full\n```\n\n---\n\n### Local testing\n\nThe image includes the Lambda Runtime Interface Emulator.\n\n```bash\ndocker run --rm -p 9000:8080 \\\n --env _HANDLER=\"handler.main\" \\\n --entrypoint /aws-lambda/aws-lambda-rie \\\n my-lambda-image /var/runtime/bootstrap\n```\n\nInvoke locally:\n\n```bash\ncurl -X POST \\\n http://localhost:9000/2015-03-31/functions/function/invocations \\\n -d '{\"hello\":\"world\"}'\n```"
5+
}

0 commit comments

Comments
 (0)