Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
switch to ESM and update config/test wiring
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
  • Loading branch information
crazy-max committed Feb 28, 2026
commit cf6a6ce0f795805447a6fa47ef4a7b0cdb2103ef
3 changes: 1 addition & 2 deletions .prettierrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,5 @@
"singleQuote": true,
"trailingComma": "none",
"bracketSpacing": false,
"arrowParens": "avoid",
"parser": "typescript"
"arrowParens": "avoid"
}
10 changes: 5 additions & 5 deletions __tests__/context.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ import {afterEach, beforeEach, describe, expect, test, it, vi} from 'vitest';
import * as dotenv from 'dotenv';
import * as fs from 'fs';
import * as path from 'path';
import {Context} from '@actions/github/lib/context';
import {Git} from '@docker/actions-toolkit/lib/git';
import {GitHub} from '@docker/actions-toolkit/lib/github';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
import {Context} from '@actions/github/lib/context.js';
import {Git} from '@docker/actions-toolkit/lib/git.js';
import {GitHub} from '@docker/actions-toolkit/lib/github.js';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit.js';

import * as context from '../src/context';
import * as context from '../src/context.js';

const toolkit = new Toolkit({githubToken: 'fake-github-token'});

Expand Down
4 changes: 2 additions & 2 deletions __tests__/flavor.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {describe, expect, test} from 'vitest';

import {Flavor, Transform} from '../src/flavor';
import {Flavor, Transform} from '../src/flavor.js';

describe('transform', () => {
// prettier-ignore
Expand Down Expand Up @@ -175,7 +175,7 @@ describe('transform', () => {
if (!invalid) {
console.error(err);
}
// eslint-disable-next-line @vitest/no-conditional-expect
// eslint-disable-next-line vitest/no-conditional-expect
expect(true).toBe(invalid);
}
});
Expand Down
4 changes: 2 additions & 2 deletions __tests__/image.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {describe, expect, test} from 'vitest';

import {Transform, Image} from '../src/image';
import {Transform, Image} from '../src/image.js';

describe('transform', () => {
// prettier-ignore
Expand Down Expand Up @@ -95,7 +95,7 @@ describe('transform', () => {
if (!invalid) {
console.error(err);
}
// eslint-disable-next-line @vitest/no-conditional-expect
// eslint-disable-next-line vitest/no-conditional-expect
expect(true).toBe(invalid);
}
});
Expand Down
30 changes: 15 additions & 15 deletions __tests__/meta.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ import * as fs from 'fs';
import * as path from 'path';
import * as dotenv from 'dotenv';

import {Context} from '@actions/github/lib/context';
import {GitHub} from '@docker/actions-toolkit/lib/github';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
import {GitHubRepo} from '@docker/actions-toolkit/lib/types/github';
import {Context} from '@actions/github/lib/context.js';
import {GitHub} from '@docker/actions-toolkit/lib/github.js';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit.js';
import {GitHubRepo} from '@docker/actions-toolkit/lib/types/github.js';

import {ContextSource, getContext, getInputs, Inputs} from '../src/context';
import {Meta, Version} from '../src/meta';
import {ContextSource, getContext, getInputs, Inputs} from '../src/context.js';
import {Meta, Version} from '../src/meta.js';

import repoFixture from './fixtures/repo.json';
import repoFixture from './fixtures/repo.json' with {type: 'json'};

vi.spyOn(GitHub.prototype, 'repoData').mockImplementation((): Promise<GitHubRepo> => {
return <Promise<GitHubRepo>>(repoFixture as unknown);
Expand Down Expand Up @@ -85,7 +85,7 @@ const tagsLabelsTest = async (name: string, envFile: string, inputs: Inputs, exV

describe('null', () => {
// prettier-ignore
// eslint-disable-next-line @vitest/expect-expect
// eslint-disable-next-line vitest/expect-expect
test.each([
[
'null01',
Expand Down Expand Up @@ -144,7 +144,7 @@ describe('null', () => {

describe('push', () => {
// prettier-ignore
// eslint-disable-next-line @vitest/expect-expect
// eslint-disable-next-line vitest/expect-expect
test.each([
[
'push01',
Expand Down Expand Up @@ -867,7 +867,7 @@ describe('push', () => {

describe('tag', () => {
// prettier-ignore
// eslint-disable-next-line @vitest/expect-expect
// eslint-disable-next-line vitest/expect-expect
test.each([
[
'tag01',
Expand Down Expand Up @@ -2046,7 +2046,7 @@ describe('tag', () => {

describe('latest', () => {
// prettier-ignore
// eslint-disable-next-line @vitest/expect-expect
// eslint-disable-next-line vitest/expect-expect
test.each([
[
'latest01',
Expand Down Expand Up @@ -2388,7 +2388,7 @@ describe('latest', () => {

describe('pr', () => {
// prettier-ignore
// eslint-disable-next-line @vitest/expect-expect
// eslint-disable-next-line vitest/expect-expect
test.each([
[
'pr01',
Expand Down Expand Up @@ -3170,7 +3170,7 @@ describe('pr-head-sha', () => {

describe('schedule', () => {
// prettier-ignore
// eslint-disable-next-line @vitest/expect-expect
// eslint-disable-next-line vitest/expect-expect
test.each([
[
'schedule01',
Expand Down Expand Up @@ -3434,7 +3434,7 @@ describe('schedule', () => {

describe('release', () => {
// prettier-ignore
// eslint-disable-next-line @vitest/expect-expect
// eslint-disable-next-line vitest/expect-expect
test.each([
[
'release01',
Expand Down Expand Up @@ -3536,7 +3536,7 @@ describe('release', () => {

describe('raw', () => {
// prettier-ignore
// eslint-disable-next-line @vitest/expect-expect
// eslint-disable-next-line vitest/expect-expect
test.each([
[
'raw01',
Expand Down
6 changes: 3 additions & 3 deletions __tests__/tag.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {describe, expect, test} from 'vitest';

import {Transform, Parse, Tag, Type, RefEvent, ShaFormat, DefaultPriorities} from '../src/tag';
import {Transform, Parse, Tag, Type, RefEvent, ShaFormat, DefaultPriorities} from '../src/tag.js';

describe('transform', () => {
// prettier-ignore
Expand Down Expand Up @@ -107,7 +107,7 @@ describe('transform', () => {
if (!invalid) {
console.error(err);
}
// eslint-disable-next-line @vitest/no-conditional-expect
// eslint-disable-next-line vitest/no-conditional-expect
expect(true).toBe(invalid);
}
});
Expand Down Expand Up @@ -461,7 +461,7 @@ describe('parse', () => {
if (!invalid) {
console.error(err);
}
// eslint-disable-next-line @vitest/no-conditional-expect
// eslint-disable-next-line vitest/no-conditional-expect
expect(true).toBe(invalid);
}
});
Expand Down
58 changes: 0 additions & 58 deletions eslint.config.js

This file was deleted.

52 changes: 52 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import {defineConfig} from 'eslint/config';
import js from '@eslint/js';
import tseslint from '@typescript-eslint/eslint-plugin';
import vitest from '@vitest/eslint-plugin';
import globals from 'globals';
import eslintConfigPrettier from 'eslint-config-prettier/flat';
import eslintPluginPrettier from 'eslint-plugin-prettier';

export default defineConfig([
{
ignores: ['.yarn/**/*', 'coverage/**/*', 'dist/**/*']
},
js.configs.recommended,
...tseslint.configs['flat/recommended'],
eslintConfigPrettier,
{
languageOptions: {
globals: {
...globals.node
}
}
},
{
files: ['__tests__/**'],
...vitest.configs.recommended,
languageOptions: {
globals: {
...globals.node,
...vitest.environments.env.globals
}
},
rules: {
...vitest.configs.recommended.rules,
'vitest/no-conditional-expect': 'error',
'vitest/no-disabled-tests': 0
}
},
{
plugins: {
prettier: eslintPluginPrettier
},
rules: {
'prettier/prettier': 'error',
'@typescript-eslint/no-require-imports': [
'error',
{
allowAsImport: true
}
]
}
}
]);
14 changes: 5 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
{
"name": "docker-metadata-action",
"description": "GitHub Action to extract metadata (tags, labels) for Docker",
"type": "module",
"main": "src/main.ts",
"scripts": {
"build": "ncc build --source-map --minify --license licenses.txt",
"lint": "yarn run prettier && yarn run eslint",
"format": "yarn run prettier:fix && yarn run eslint:fix",
"eslint": "eslint --max-warnings=0 .",
"eslint:fix": "eslint --fix .",
"prettier": "prettier --check \"./**/*.ts\"",
"prettier:fix": "prettier --write \"./**/*.ts\"",
"lint": "eslint --max-warnings=0 .",
"format": "eslint --fix .",
"test": "vitest run"
},
"repository": {
Expand Down Expand Up @@ -38,10 +35,9 @@
"semver": "^7.7.3"
},
"devDependencies": {
"@eslint/compat": "^2.0.0",
"@eslint/eslintrc": "^3.3.3",
"@eslint/js": "^9.39.2",
"@types/node": "^20.19.27",
"@types/semver": "^7.7.1",
"@typescript-eslint/eslint-plugin": "^8.50.0",
"@typescript-eslint/parser": "^8.50.0",
"@vercel/ncc": "^0.38.4",
Expand All @@ -51,8 +47,8 @@
"eslint": "^9.39.2",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.4",
"globals": "^17.3.0",
"prettier": "^3.7.4",
"ts-node": "^10.9.2",
"typescript": "^5.9.3",
"vitest": "^4.0.18"
}
Expand Down
11 changes: 6 additions & 5 deletions src/context.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import * as core from '@actions/core';
import {Context as GithubContext} from '@actions/github/lib/context';
import {Util} from '@docker/actions-toolkit/lib/util';
import {Git} from '@docker/actions-toolkit/lib/git';
import {GitHub} from '@docker/actions-toolkit/lib/github';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';

import {Context as GithubContext} from '@actions/github/lib/context.js';
import {Util} from '@docker/actions-toolkit/lib/util.js';
import {Git} from '@docker/actions-toolkit/lib/git.js';
import {GitHub} from '@docker/actions-toolkit/lib/github.js';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit.js';

export interface Context extends GithubContext {
commitDate: Date;
Expand Down
8 changes: 4 additions & 4 deletions src/main.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import * as fs from 'fs';
import * as core from '@actions/core';
import * as actionsToolkit from '@docker/actions-toolkit';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
import {Util} from '@docker/actions-toolkit/lib/util';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit.js';
import {Util} from '@docker/actions-toolkit/lib/util.js';

import {getContext, getInputs, Inputs} from './context';
import {Meta, Version} from './meta';
import {getContext, getInputs, Inputs} from './context.js';
import {Meta, Version} from './meta.js';

actionsToolkit.run(
// main
Expand Down
12 changes: 6 additions & 6 deletions src/meta.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ import moment from 'moment-timezone';
import * as pep440 from '@renovate/pep440';
import * as semver from 'semver';
import * as core from '@actions/core';
import {Context as ToolkitContext} from '@docker/actions-toolkit/lib/context';
import {GitHubRepo} from '@docker/actions-toolkit/lib/types/github';
import {Context as ToolkitContext} from '@docker/actions-toolkit/lib/context.js';
import {GitHubRepo} from '@docker/actions-toolkit/lib/types/github.js';

import {Inputs, Context} from './context';
import * as icl from './image';
import * as tcl from './tag';
import * as fcl from './flavor';
import {Inputs, Context} from './context.js';
import * as icl from './image.js';
import * as tcl from './tag.js';
import * as fcl from './flavor.js';

const defaultShortShaLength = 7;

Expand Down
Loading