From dfc933ad77cf32bd7984ca0cad45a3d7679d3ec0 Mon Sep 17 00:00:00 2001 From: "Aaron (\"AJ\") Steers" Date: Mon, 22 Apr 2024 14:39:35 -0700 Subject: [PATCH] DX: Add devcontainer configs for "Python generic" and "Default" (#34032) --- .devcontainer/devcontainer.json | 70 +++++++++++++++++++ .../java-connectors-generic/devcontainer.json | 4 +- 2 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 .devcontainer/devcontainer.json diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 00000000000..77112af5bc7 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,70 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the +{ + "name": "Java Development DevContainer (Generic)", + "image": "mcr.microsoft.com/devcontainers/java:0-17", + "features": { + "ghcr.io/devcontainers/features/docker-in-docker": {}, + "ghcr.io/devcontainers/features/java:1": { + "installGradle": true, + "version": "latest", + "jdkDistro": "open", + "gradleVersion": "7.5.1" + }, + // Python needed for `airbyte-ci` CLI + "ghcr.io/devcontainers/features/python:1": { + "installGradle": true, + "version": "3.10", + "installTools": true + }, + "ghcr.io/devcontainers-contrib/features/poetry:2": {} + }, + // Deterministic order reduces cache busting + "overrideFeatureInstallOrder": [ + "ghcr.io/devcontainers/features/docker-in-docker", + "ghcr.io/devcontainers/features/java", + "ghcr.io/devcontainers/features/python", + "ghcr.io/devcontainers-contrib/features/poetry" + ], + // Configure tool-specific properties. + "customizations": { + "vscode": { + "extensions": [ + // Python extensions: + "charliermarsh.ruff", + "matangover.mypy", + "ms-python.python", + "ms-python.vscode-pylance", + // Toml support + "tamasfe.even-better-toml", + // Yaml and JSON Schema support: + "redhat.vscode-yaml", + // Contributing: + "GitHub.vscode-pull-request-github", + // General AI Auto-Complete (Python and Java) + "VisualStudioExptTeam.vscodeintellicode", + // Gradle and Java + "redhat.java", + "vscjava.vscode-gradle", + "vscjava.vscode-java-debug", + "vscjava.vscode-java-test", + "vscjava.vscode-java-dependency" + ], + "settings": { + "extensions.ignoreRecommendations": true, + "git.openRepositoryInParentFolders": "always" + } + } + }, + // Mark the root directory as 'safe' for git. + "initializeCommand": "git config --add safe.directory /workspaces/airbyte", + // Install Gradle, `airbyte-ci` CLI, and Dagger (installed via airbyte-ci --help) + "postCreateCommand": "make tools.airbyte-ci-dev.install", + "containerEnv": { + // Deterministic Poetry virtual env location: `./.venv` + "POETRY_VIRTUALENVS_IN_PROJECT": "true" + } + // Override to change the directory that the IDE opens by default: + // "workspaceFolder": "/workspaces/airbyte" + // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. + // "remoteUser": "root" +} diff --git a/.devcontainer/java-connectors-generic/devcontainer.json b/.devcontainer/java-connectors-generic/devcontainer.json index c35b8502dd7..9ddf7c29b64 100644 --- a/.devcontainer/java-connectors-generic/devcontainer.json +++ b/.devcontainer/java-connectors-generic/devcontainer.json @@ -42,8 +42,8 @@ // Mark the root directory as 'safe' for git. "initializeCommand": "git config --add safe.directory /workspaces/airbyte", - // Install Gradle, `airbyte-ci` CLI, and Dagger (installed via airbyte-ci --help) - "postCreateCommand": "./gradlew --version && pipx install --editable ./airbyte-ci/connectors/pipelines/ || airbyte-ci --help || true", + // Install `airbyte-ci` and Gradle + "postCreateCommand": "make tools.airbyte-ci-dev.install && ./gradlew --version", "containerEnv": { // Deterministic Poetry virtual env location: `./.venv`