4 Commits

Author SHA1 Message Date
CrazyMax 112d3e30db Merge pull request #49 from crazy-max/node24
node 24 as default runtime
2026-03-02 14:33:37 +01:00
CrazyMax 9a3285656d node 24 as default runtime
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-02 14:28:30 +01:00
CrazyMax 2dd6325a67 Merge pull request #48 from crazy-max/nits
fix some nits to be consistent across actions
2026-03-02 10:41:10 +01:00
CrazyMax 5cff5dd8b8 fix some nits to be consistent across actions
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
2026-03-02 09:47:03 +01:00
8 changed files with 42 additions and 52 deletions
+11 -13
View File
@@ -32,7 +32,7 @@ describe('getInputs', () => {
}); });
// prettier-ignore // prettier-ignore
test.each([ const cases: [number, Map<string, string>, context.Inputs][] = [
[ [
0, 0,
new Map<string, string>([ new Map<string, string>([
@@ -41,7 +41,7 @@ describe('getInputs', () => {
{ {
version: '', version: '',
cacheBinary: true, cacheBinary: true,
} as context.Inputs }
], ],
[ [
1, 1,
@@ -52,18 +52,16 @@ describe('getInputs', () => {
{ {
version: 'v2.32.4', version: 'v2.32.4',
cacheBinary: false cacheBinary: false
} as context.Inputs }
] ]
])( ];
'[%d] given %p as inputs, returns %p', test.each(cases)('[%d] given %o as inputs, returns %o', async (num: number, inputs: Map<string, string>, expected: context.Inputs) => {
async (num: number, inputs: Map<string, string>, expected: context.Inputs) => { inputs.forEach((value: string, name: string) => {
inputs.forEach((value: string, name: string) => { setInput(name, value);
setInput(name, value); });
}); const res = await context.getInputs();
const res = await context.getInputs(); expect(res).toEqual(expected);
expect(res).toEqual(expected); });
}
);
}); });
// See: https://github.com/actions/toolkit/blob/master/packages/core/src/core.ts#L67 // See: https://github.com/actions/toolkit/blob/master/packages/core/src/core.ts#L67
+1 -1
View File
@@ -2,7 +2,7 @@ import fs from 'node:fs';
import os from 'node:os'; import os from 'node:os';
import path from 'node:path'; import path from 'node:path';
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'docker-actions-toolkit-')); const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'docker-setup-compose-action-'));
process.env = Object.assign({}, process.env, { process.env = Object.assign({}, process.env, {
TEMP: tmpDir, TEMP: tmpDir,
+1 -1
View File
@@ -16,6 +16,6 @@ inputs:
required: false required: false
runs: runs:
using: 'node20' using: 'node24'
main: 'dist/index.js' main: 'dist/index.js'
post: 'dist/index.js' post: 'dist/index.js'
+17 -8
View File
@@ -1,12 +1,13 @@
# syntax=docker/dockerfile:1 # syntax=docker/dockerfile:1
ARG NODE_VERSION=20 ARG NODE_VERSION=24
FROM node:${NODE_VERSION}-alpine AS base FROM node:${NODE_VERSION}-alpine AS base
RUN apk add --no-cache cpio findutils git RUN apk add --no-cache cpio findutils git rsync
WORKDIR /src WORKDIR /src
RUN --mount=type=bind,target=.,rw \ RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache <<EOT --mount=type=cache,target=/src/.yarn/cache <<EOT
set -e
corepack enable corepack enable
yarn --version yarn --version
yarn config set --home enableTelemetry 0 yarn config set --home enableTelemetry 0
@@ -34,18 +35,27 @@ RUN --mount=type=bind,target=.,rw <<EOT
EOT EOT
FROM deps AS build FROM deps AS build
RUN --mount=type=bind,target=.,rw \ RUN --mount=target=/context \
--mount=type=cache,target=/src/.yarn/cache \ --mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \ --mount=type=cache,target=/src/node_modules <<EOT
yarn run build && mkdir /out && cp -Rf dist /out/ set -e
rsync -a /context/. .
rm -rf dist
yarn run build
mkdir /out
cp -r dist /out
EOT
FROM scratch AS build-update FROM scratch AS build-update
COPY --from=build /out / COPY --from=build /out /
FROM build AS build-validate FROM build AS build-validate
RUN --mount=type=bind,target=.,rw <<EOT RUN --mount=target=/context \
--mount=target=.,type=tmpfs <<EOT
set -e set -e
rsync -a /context/. .
git add -A git add -A
rm -rf dist
cp -rf /out/* . cp -rf /out/* .
if [ -n "$(git status --porcelain -- dist)" ]; then if [ -n "$(git status --porcelain -- dist)" ]; then
echo >&2 'ERROR: Build result differs. Please build first with "docker buildx bake build"' echo >&2 'ERROR: Build result differs. Please build first with "docker buildx bake build"'
@@ -58,8 +68,7 @@ FROM deps AS format
RUN --mount=type=bind,target=.,rw \ RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.yarn/cache \ --mount=type=cache,target=/src/.yarn/cache \
--mount=type=cache,target=/src/node_modules \ --mount=type=cache,target=/src/node_modules \
yarn run format \ yarn run format && mkdir /out && find . -name '*.ts' -not -path './node_modules/*' -not -path './.yarn/*' | cpio -pdm /out
&& mkdir /out && find . -name '*.ts' -not -path './node_modules/*' -not -path './.yarn/*' | cpio -pdm /out
FROM scratch AS format-update FROM scratch AS format-update
COPY --from=format /out / COPY --from=format /out /
+1 -1
View File
@@ -27,7 +27,7 @@
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.39.3", "@eslint/js": "^9.39.3",
"@types/node": "^20.19.35", "@types/node": "^24.11.0",
"@typescript-eslint/eslint-plugin": "^8.56.1", "@typescript-eslint/eslint-plugin": "^8.56.1",
"@typescript-eslint/parser": "^8.56.1", "@typescript-eslint/parser": "^8.56.1",
"@vercel/ncc": "^0.38.4", "@vercel/ncc": "^0.38.4",
-1
View File
@@ -3,7 +3,6 @@
"module": "nodenext", "module": "nodenext",
"moduleResolution": "nodenext", "moduleResolution": "nodenext",
"esModuleInterop": true, "esModuleInterop": true,
"strict": true,
"newLine": "lf", "newLine": "lf",
"outDir": "./lib", "outDir": "./lib",
"rootDir": "./src", "rootDir": "./src",
+1 -17
View File
@@ -1,19 +1,3 @@
/**
* Copyright 2026 actions-toolkit authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import {defineConfig} from 'vitest/config'; import {defineConfig} from 'vitest/config';
export default defineConfig({ export default defineConfig({
@@ -26,7 +10,7 @@ export default defineConfig({
provider: 'v8', provider: 'v8',
reporter: ['clover'], reporter: ['clover'],
include: ['src/**/*.ts'], include: ['src/**/*.ts'],
exclude: ['src/**/main.ts', '__tests__/**', 'dist/**'] exclude: ['src/**/main.ts']
} }
} }
}); });
+10 -10
View File
@@ -1291,12 +1291,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/node@npm:^20.19.35": "@types/node@npm:^24.11.0":
version: 20.19.35 version: 24.11.0
resolution: "@types/node@npm:20.19.35" resolution: "@types/node@npm:24.11.0"
dependencies: dependencies:
undici-types: "npm:~6.21.0" undici-types: "npm:~7.16.0"
checksum: 10/f14fa74f9ae4d1109d8a8e3ec31b6518122b3d31c28fd5725cb3eef8ff64d7cf6f8da9c84c78b512e2968006ec325c82a413cc2062da7b3c3230c882e88babba checksum: 10/d2f4f898c6a0f14980e55c697904fb58681729fc46b4e264d5f64dc391b23da73c9b422cfffbca28c045e6e8eca72dab5f28ed633faa95398ef1528af5398382
languageName: node languageName: node
linkType: hard linkType: hard
@@ -2084,7 +2084,7 @@ __metadata:
"@actions/core": "npm:^3.0.0" "@actions/core": "npm:^3.0.0"
"@docker/actions-toolkit": "npm:^0.77.0" "@docker/actions-toolkit": "npm:^0.77.0"
"@eslint/js": "npm:^9.39.3" "@eslint/js": "npm:^9.39.3"
"@types/node": "npm:^20.19.35" "@types/node": "npm:^24.11.0"
"@typescript-eslint/eslint-plugin": "npm:^8.56.1" "@typescript-eslint/eslint-plugin": "npm:^8.56.1"
"@typescript-eslint/parser": "npm:^8.56.1" "@typescript-eslint/parser": "npm:^8.56.1"
"@vercel/ncc": "npm:^0.38.4" "@vercel/ncc": "npm:^0.38.4"
@@ -4374,10 +4374,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"undici-types@npm:~6.21.0": "undici-types@npm:~7.16.0":
version: 6.21.0 version: 7.16.0
resolution: "undici-types@npm:6.21.0" resolution: "undici-types@npm:7.16.0"
checksum: 10/ec8f41aa4359d50f9b59fa61fe3efce3477cc681908c8f84354d8567bb3701fafdddf36ef6bff307024d3feb42c837cf6f670314ba37fc8145e219560e473d14 checksum: 10/db43439f69c2d94cc29f75cbfe9de86df87061d6b0c577ebe9bb3255f49b22c50162a7d7eb413b0458b6510b8ca299ac7cff38c3a29fbd31af9f504bcf7fbc0d
languageName: node languageName: node
linkType: hard linkType: hard