diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 000000000000..0ccbd0f9244d --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,25 @@ +# Use Ubuntu as the base image +FROM ubuntu:24.04 + +# Set to noninteractive +ENV DEBIAN_FRONTEND=noninteractive + +# Install necessary dependencies +RUN apt-get update && apt-get install -y \ + curl \ + git \ + python3 \ + python3-setuptools \ + build-essential \ + libvips-dev \ + zip + +# install volta +RUN curl https://get.volta.sh | bash +# needed by volta() function +ENV VOLTA_HOME /$HOME/.volta +# make sure packages managed by volta will be in PATH +ENV PATH $VOLTA_HOME/bin:$PATH + +# enable to run E2E tests locally +#RUN export VOLTA_FEATURE_PNPM=1 diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 000000000000..eb3c98fc3dd3 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,21 @@ +{ + "name": "sentry-javascript", + "build": { + "dockerfile": "Dockerfile" + }, + "customizations": { + "vscode": { + "extensions": [ + "esbenp.prettier-vscode", + "biomejs.biome", + "dbaeumer.vscode-eslint", + "augustocdias.tasks-shell-input", + "denoland.vscode-deno", + "orta.vscode-jest", + "ms-azuretools.vscode-docker" + ] + } + }, + "mounts": ["source=${localWorkspaceFolder}/,target=/workspace,type=bind,consistency=cached"], + "postStartCommand": "git config --global --add safe.directory ${containerWorkspaceFolder} && yarn config set cache-folder /workspace/.yarncache" +} diff --git a/.gitignore b/.gitignore index 3cc2319ea8a9..7b597ca67a58 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,6 @@ packages/deno/lib.deno.d.ts # gatsby packages/gatsby/gatsby-node.d.ts + +# devcontainer-yarn-cache +.yarncache diff --git a/.vscode/settings.json b/.vscode/settings.json index 4926554ffe4b..333946e76767 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -42,5 +42,6 @@ "[typescript]": { "editor.defaultFormatter": "biomejs.biome" }, - "cSpell.words": ["arrayify", "OTEL"] + "cSpell.words": ["arrayify", "OTEL"], + "dev.containers.defaultExtensions": ["mutantdino.resourcemonitor"] } diff --git a/.yarnrc b/.yarnrc index d81643fe43f1..928f8ee9ad9c 100644 --- a/.yarnrc +++ b/.yarnrc @@ -1 +1,2 @@ env: NODE_OPTIONS --stack-trace-limit=10000 +network-timeout: 600000