Skip to content

Commit

Permalink
feat: Add codespaces/gitpod support (#485)
Browse files Browse the repository at this point in the history
* feat: initial codespaces support

* chore: example commit to disable a plugin

* fix: rather use lerna-ci

* fix: forgot to remove "cd "to examples

* feat: Add gitpod support

* chore: move to node 14 for both gitpod and codespaces

* fix: gitpod specific way

* chore: use nvmrc to ease shared config

* docs: comment out docs for gitpod

* fix: force npm to be 8

* feat: finalize extensions

* chore: remove ones that don't work

* fix: container typo
  • Loading branch information
Michael Brewer authored Jan 24, 2022
1 parent 014c5bd commit ed6f258
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 1 deletion.
15 changes: 15 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -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"
34 changes: 34 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -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"
}
9 changes: 9 additions & 0 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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. -->
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

Expand Down

0 comments on commit ed6f258

Please sign in to comment.