diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100644 index 83c8b9419..000000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -# Image tag should match package.json > @playwright/test -FROM mcr.microsoft.com/playwright:v1.55.0-jammy - -RUN apt update && \ - apt install sudo && \ - usermod -aG sudo pwuser && \ - echo "%sudo ALL=(ALL) NOPASSWD:ALL" | tee -a /etc/sudoers > /dev/null - -RUN chown pwuser:pwuser -R /home/pwuser -USER pwuser \ No newline at end of file diff --git a/.devcontainer/README.md b/.devcontainer/README.md index d8ff99ed7..c09d5b100 100644 --- a/.devcontainer/README.md +++ b/.devcontainer/README.md @@ -2,21 +2,6 @@ Use [Devcontainers](https://code.visualstudio.com/docs/devcontainers/containers) to prepare a fully automated working environment. -Generate the `devcontainer.json` executing: - -```shell -cd .devcontainer -./generate_devcontainer.sh -``` - -Now you should see the file `.devcontainer/devcontainer.json`. At this point you can use your favorite IDE to run Devcontainers - -## VSCode - -Install the extension https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers - -To open the repository with DevContainers do `Ctrl + Shift + P` and enter `Dev Containers: Rebuild and Reopen in Container`. For more options see the Extension documentations. - ### Docker Docker defaults should work fine therefore there is nothing to do. @@ -35,8 +20,16 @@ Restart your OS if necessary and verify that podman listens: systemctl --user status podman.socket ``` +## VSCode + +Install the extension https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers + +Only if you use podman, therefore Optional: + Go to the Extension Settings: - `Dev › Containers: Docker Compose Path` set `podman-compose` - `Dev › Containers: Docker Path` set `podman` - `Dev › Containers: Docker Socket Path` set `/run/podman/podman.sock` + +To open the repository with DevContainers do `Ctrl + Shift + P` and enter `Dev Containers: Rebuild and Reopen in Container` or `Dev Containers: Reopen in Container`. For more options see the Extension documentation. diff --git a/.devcontainer/generate_devcontainer.sh b/.devcontainer/generate_devcontainer.sh deleted file mode 100755 index fa4357514..000000000 --- a/.devcontainer/generate_devcontainer.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -HOSTNAME=$(hostname) -envsubst '${HOSTNAME}' < template.json > devcontainer.json \ No newline at end of file diff --git a/.devcontainer/node/Dockerfile b/.devcontainer/node/Dockerfile new file mode 100644 index 000000000..88cae803d --- /dev/null +++ b/.devcontainer/node/Dockerfile @@ -0,0 +1 @@ +FROM mcr.microsoft.com/devcontainers/base:ubuntu diff --git a/.devcontainer/node/devcontainer.json b/.devcontainer/node/devcontainer.json new file mode 100644 index 000000000..d957b989c --- /dev/null +++ b/.devcontainer/node/devcontainer.json @@ -0,0 +1,45 @@ +{ + "name": "trustify-ui", + "dockerComposeFile": "./docker-compose.yml", + "service": "trustify-ui", + "workspaceFolder": "/workspace", + "forwardPorts": [ + 3000 + ], + "features": { + "ghcr.io/devcontainers/features/common-utils:2": {}, + "ghcr.io/devcontainers/features/node:1": { + "version": "22" + } + }, + "customizations": { + "vscode": { + "extensions": [ + "dsznajder.es7-react-js-snippets", + "biomejs.biome", + "ms-playwright.playwright", + "alexkrechik.cucumberautocomplete" + ], + "settings": { + "git.alwaysSignOff": true, + "biome.searchInPath": false, + "biome.lsp.bin": "node_modules/@biomejs/cli-linux-x64/biome", + "editor.defaultFormatter": "biomejs.biome", + "[javascript]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[typescript]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "biomejs.biome" + }, + "cucumberautocomplete.steps": [ + "e2e/tests/ui/features/@*/*.step.ts", + "e2e/tests/ui/steps/*.ts" + ], + "cucumberautocomplete.strictGherkinCompletion": true + } + } + } +} \ No newline at end of file diff --git a/.devcontainer/node/docker-compose.yml b/.devcontainer/node/docker-compose.yml new file mode 100644 index 000000000..e6036f3b1 --- /dev/null +++ b/.devcontainer/node/docker-compose.yml @@ -0,0 +1,20 @@ +networks: + trustify: + name: "trustify" + +services: + trustify-ui: + image: localhost/devcontainer-trustify-ui:latest + build: + dockerfile: ./Dockerfile + security_opt: + - "label=disable" + userns_mode: "keep-id" + environment: + TRUSTIFY_API_URL: http://trustify:8080 + OIDC_SERVER_URL: http://localhost:9090/realms/trustify + command: /bin/sh -c "while sleep 1000; do :; done" + volumes: + - ../..:/workspace:cached + networks: + - trustify diff --git a/.devcontainer/playwright/Dockerfile b/.devcontainer/playwright/Dockerfile new file mode 100644 index 000000000..827b76ca4 --- /dev/null +++ b/.devcontainer/playwright/Dockerfile @@ -0,0 +1 @@ +FROM mcr.microsoft.com/playwright:v1.55.0-jammy diff --git a/.devcontainer/template.json b/.devcontainer/playwright/devcontainer.json similarity index 57% rename from .devcontainer/template.json rename to .devcontainer/playwright/devcontainer.json index c699bd2bb..253eae077 100644 --- a/.devcontainer/template.json +++ b/.devcontainer/playwright/devcontainer.json @@ -1,23 +1,24 @@ { - "name": "playwright", - "build": { - "dockerfile": "Dockerfile" - }, - "workspaceFolder": "/workspaces/trustify-ui/e2e", - "runArgs": [ - "--privileged", - "--userns=keep-id", - "--network=host", - "--add-host=${HOSTNAME}:127.0.0.1", - "-e DISPLAY=:2" - ], + "name": "trustify-e2e", + "dockerComposeFile": "./docker-compose.yml", + "service": "playwright", + "workspaceFolder": "/workspace/e2e", "remoteUser": "pwuser", + "forwardPorts": [ + 6080, + 5901 + ], "features": { + "ghcr.io/devcontainers/features/common-utils:2": { + "username": "pwuser" + }, + "ghcr.io/devcontainers/features/node:1": { + "version": "22" + }, "ghcr.io/devcontainers/features/desktop-lite:1": { "VNC_RESOLUTION": "1920x1200x16" } }, - "forwardPorts": [6080, 5901], "portsAttributes": { "6080": { "label": "browser vnc" @@ -33,12 +34,13 @@ "alexkrechik.cucumberautocomplete" ], "settings": { + "git.alwaysSignOff": true, "cucumberautocomplete.steps": [ "tests/ui/features/@*/*.step.ts", "tests/ui/steps/*.ts" ], - "cucumberautocomplete.strictGherkinCompletion": true + "cucumberautocomplete.strictGherkinCompletion": true } } } -} +} \ No newline at end of file diff --git a/.devcontainer/playwright/docker-compose.yml b/.devcontainer/playwright/docker-compose.yml new file mode 100644 index 000000000..2bd947f42 --- /dev/null +++ b/.devcontainer/playwright/docker-compose.yml @@ -0,0 +1,12 @@ +services: + playwright: + image: localhost/devcontainer-trustify-e2e:latest + build: + dockerfile: ./Dockerfile + security_opt: + - "label=disable" + userns_mode: "keep-id" + network_mode: host + command: /bin/sh -c "while sleep 1000; do :; done" + volumes: + - ../..:/workspace:cached