diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000..1a7334ee80 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,15 @@ +# See here for image contents: https://github.com/microsoft/vscode-dev-containers/blob/v0.212.0/containers/javascript-node/.devcontainer/base.Dockerfile +# [Choice] Node.js version (use -bullseye variants on local arm64/Apple Silicon): 16, 14, 12, 16-bullseye, 14-bullseye, 12-bullseye, 16-buster, 14-buster, 12-buster +ARG VARIANT="14-bullseye" +FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${VARIANT} + +# This section to install additional OS packages. +RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ + && apt-get -y install --no-install-recommends bash-completion + +# [Optional] Uncomment if you want to install an additional version of node using nvm +# ARG EXTRA_NODE_VERSION=10 +# RUN su node -c "umask 0002 && ./usr/local/share/nvm/nvm.sh && nvm install ${EXTRA_NODE_VERSION}" + +# Global node modules +RUN su node -c "npm install -g npm-check-updates npm@next-8" diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..b4f8c88210 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,34 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: +// https://github.com/microsoft/vscode-dev-containers/tree/v0.212.0/containers/javascript-node +{ + "name": "Node.js", + "build": { + "dockerfile": "Dockerfile", + // Update 'VARIANT' to pick a Node version: 16, 14, 12. + // Append -bullseye or -buster to pin to an OS version. + // Use -bullseye variants on local arm64/Apple Silicon. + "args": { "VARIANT": "14-bullseye" } + }, + + // Set *default* container specific settings.json values on container create. + "settings": { + "git.enableCommitSigning": true + }, + + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "firsttris.vscode-jest-runner", + "visualstudioexptteam.vscodeintellicode", + "amazonwebservices.aws-toolkit-vscode", + "ms-vscode.vscode-typescript-tslint-plugin", + "ms-azuretools.vscode-docker" + ], + + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": "npm ci; npm run lerna-ci; npm run init-environment", + + // Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. + "remoteUser": "node" +} \ No newline at end of file diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 0000000000..65af352a5a --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,9 @@ +tasks: + - init: nvm install; nvm use; npm i -g npm@next-8; npm ci; npm run lerna-ci; npm run init-environment +vscode: + extensions: + - dbaeumer.vscode-eslint + - esbenp.prettier-vscode + - firsttris.vscode-jest-runner + - ms-azuretools.vscode-docker + - ms-vscode.vscode-typescript-tslint-plugin diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ee6ac11b2f..1c4a6b0087 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -108,7 +108,7 @@ Work your magic. Before starting make sure to check the [Getting Started](#Getti ## Getting Started The following steps describe how to set up the AWS Lambda Powertools (Typescript) repository on your local machine. - +The alternative is to use a Cloud IDE like [Gitpod](https://www.gitpod.io/) or [Codespaces](https://github.com/features/codespaces) for your development. ### Setup