diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 5a7b8ea..0c92e50 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,3 +1,5 @@ FROM mcr.microsoft.com/devcontainers/javascript-node:24-bookworm RUN npm install --global pnpm@latest-10 + +RUN mkdir /usr/share/dotnet && chmod a+w /usr/share/dotnet diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 36260b6..24cb787 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -10,7 +10,7 @@ "ghcr.io/devcontainer-config/features/user-init:2": {}, "ghcr.io/devcontainer-config/features/dot-config:3": {}, "ghcr.io/devcontainers/features/docker-in-docker:2": {}, - "ghcr.io/devcontainers/features/dotnet:2": { "version": "8.0" } + "ghcr.io/devcontainers/features/dotnet:2": { "version": "10.0" } }, "customizations": { "vscode": { diff --git a/package.json b/package.json index 93dcd55..5b9b407 100644 --- a/package.json +++ b/package.json @@ -16,13 +16,13 @@ }, "dependencies": { "@commander-js/extra-typings": "^14.0.0", - "@devcontainers/cli": "^0.80.1", + "@devcontainers/cli": "^0.80.2", "@eslint/js": "^9.39.1", "@prettier/plugin-xml": "^3.4.2", - "@tsconfig/node24": "^24.0.1", + "@tsconfig/node24": "^24.0.2", "@vitest/eslint-plugin": "^1.4.2", "commander": "~14.0.2", - "cspell": "^9.3.1", + "cspell": "^9.3.2", "eslint": "^9.39.1", "eslint-config-prettier": "^10.1.8", "eslint-flat-config-gitignore": "^3.0.1", @@ -45,9 +45,9 @@ "typescript": "~5.9.3", "typescript-eslint": "^8.46.4", "vite": "^7.2.2", - "vite-node": "^5.0.0", + "vite-node": "^5.1.0", "vite-tsconfig-paths": "^5.1.4", - "vitest": "^4.0.8" + "vitest": "^4.0.9" }, "devDependencies": { "@types/eslint": "^9.6.1", diff --git a/scripts/buildx.ts b/scripts/buildx.ts index 4c9a735..694bcd6 100644 --- a/scripts/buildx.ts +++ b/scripts/buildx.ts @@ -2,14 +2,14 @@ import path from "node:path"; import { $ } from "execa"; -import { projectRoot } from "@/scripts/project.js"; +import { projectRoot, workspaces } from "@/scripts/project.js"; import { $$ } from "@/scripts/shell.js"; import { getVersionTag } from "@/scripts/tasks/build.js"; import { deploy } from "@/scripts/tasks/deploy.js"; const platforms: string[] = ["linux/amd64", "linux/arm64"]; -const packagePath = path.resolve(projectRoot, ".local/docker"); +const packagePath = path.resolve(workspaces, "artifacts/package"); async function buildImage(registry: string, imageName: string, tags: string[], publish: boolean) { console.log("Building multi-arch Docker image..."); diff --git a/setup/configs/csharp/devcontainer.ts b/setup/configs/csharp/devcontainer.ts index c51ecdf..ec4b259 100644 --- a/setup/configs/csharp/devcontainer.ts +++ b/setup/configs/csharp/devcontainer.ts @@ -14,6 +14,7 @@ import { loadTemplates } from "../templates.js"; export interface CSharpDevContainerConfigs { ".devcontainer/.env": string; ".devcontainer/devcontainer.json": string; + ".devcontainer/Dockerfile": string; ".devcontainer/dot-config.json": string; } @@ -62,12 +63,19 @@ export const createCSharpDevContainerConfigs = async ( ].join("\n"); })(); + const dockerFilaPath = ".devcontainer/Dockerfile" satisfies keyof BaseConfigs; + const dockerFileConfig = [ + baseConfig[dockerFilaPath], + "RUN mkdir /usr/share/dotnet && chmod a+w /usr/share/dotnet", + ].join("\n"); + return { ".devcontainer/.env": propertiesComposer( baseConfig[".devcontainer/.env"], fillTemplate(templates[".devcontainer/.env"], { remoteUser }), ), ".devcontainer/devcontainer.json": devContainerConfig, + ".devcontainer/Dockerfile": dockerFileConfig, ".devcontainer/dot-config.json": JSON.stringify( defaultComposer( jsonc.parse(baseConfig[".devcontainer/dot-config.json"]) as object, diff --git a/setup/formatting.ts b/setup/formatting.ts index 4166538..9c29b7d 100644 --- a/setup/formatting.ts +++ b/setup/formatting.ts @@ -8,6 +8,7 @@ export const prettierConfig: prettier.Config = { import.meta.resolve("prettier-plugin-packagejson"), import.meta.resolve("@prettier/plugin-xml"), import.meta.resolve("prettier-plugin-ini"), + import.meta.resolve("prettier-plugin-sh"), ], xmlWhitespaceSensitivity: "ignore", overrides: [ diff --git a/setup/package.json b/setup/package.json index b4a05c5..5df6892 100644 --- a/setup/package.json +++ b/setup/package.json @@ -16,17 +16,18 @@ "@commander-js/extra-typings": "^14.0.0", "@prettier/plugin-xml": "^3.4.2", "commander": "~14.0.2", - "cspell-lib": "^9.3.1", + "cspell-lib": "^9.3.2", "dedent": "^1.7.0", "default-composer": "^0.6.0", - "fast-xml-parser": "^5.3.1", + "fast-xml-parser": "^5.3.2", "jsonc-parser": "^3.3.1", "lodash-es": "^4.17.21", "oci-registry-client": "^0.2.0", - "pacote": "^21.0.3", + "pacote": "^21.0.4", "prettier": "^3.6.2", "prettier-plugin-ini": "^1.3.0", "prettier-plugin-packagejson": "^2.5.19", + "prettier-plugin-sh": "^0.18.0", "semver": "^7.7.3", "type-fest": "^5.2.0", "write-file-atomic": "^7.0.0" diff --git a/setup/templates/csharp/.config/dotnet/Packages.props b/setup/templates/csharp/.config/dotnet/Packages.props index ff6733b..afbc5a9 100644 --- a/setup/templates/csharp/.config/dotnet/Packages.props +++ b/setup/templates/csharp/.config/dotnet/Packages.props @@ -3,6 +3,6 @@ true - + diff --git a/setup/templates/csharp/Automation/Automation.csproj b/setup/templates/csharp/Automation/Automation.csproj index 3f399bf..df8a98e 100644 --- a/setup/templates/csharp/Automation/Automation.csproj +++ b/setup/templates/csharp/Automation/Automation.csproj @@ -1,7 +1,7 @@ Exe - net8.0 + net10.0 diff --git a/setup/templates/typescript/package.json b/setup/templates/typescript/package.json index c798be2..0885299 100644 --- a/setup/templates/typescript/package.json +++ b/setup/templates/typescript/package.json @@ -3,8 +3,8 @@ "type": "module", "dependencies": { "@eslint/js": "^9.39.1", - "@tsconfig/node24": "^24.0.1", - "cspell": "^9.3.1", + "@tsconfig/node24": "^24.0.2", + "cspell": "^9.3.2", "eslint": "^9.39.1", "eslint-config-prettier": "^10.1.8", "eslint-flat-config-gitignore": "^3.0.1", @@ -18,7 +18,7 @@ "typescript": "~5.9.3", "typescript-eslint": "^8.46.4", "vite": "^7.2.2", - "vite-node": "^5.0.0", + "vite-node": "^5.1.0", "vite-tsconfig-paths": "^5.1.4" }, "devDependencies": {