Lambda-compatible NodeJS images with AWS CLI installed.
Whenever a new NodeJS version is released, an instance of commit-on-release
creates an empty commit in the corresponding branch (v12
and v14
, v16
) so that a new image is published to Docker Hub by a Github Action workflow.
Instead of using e.g. node:14
and installing awscli
, jq
, and zip
every time the pipeline runs, just switch out the name of the image to sleavely/node-awscli
with the appropriate version tag. Tags are named after the Lambda NodeJS runtime identifier.
In bitbucket-pipelines.yml
:
image: sleavely/node-awscli:14.x
pipelines:
default:
- step:
name: Deploy to test environment
script:
- npm install
- npm run build-app-test
- aws s3 sync ./build s3://$(WEBHOSTING_BUCKET_NAME)/
In .circleci/config.yml
:
version: 2
jobs:
deploy:
docker:
- image: sleavely/node-awscli:14.x
steps:
- checkout
- run: npm install
- run: npm run build-app-test
- run: aws s3 sync ./build s3://$(WEBHOSTING_BUCKET_NAME)/
In .github/worksflows/deploy.yml
:
name: Build and deploy
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
container:
image: sleavely/node-awscli:14.x
steps:
- uses: actions/checkout@v2
- run: npm install
- run: npm run build-app-test
- run: aws s3 sync ./build s3://$(WEBHOSTING_BUCKET_NAME)/
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
WEBHOSTING_BUCKET_NAME: my-awesome-bucket