Skip to content

Commit 4a72a5d

Browse files
feat: enhance GitHub Action with improved input handling and default configurations
- Added a bundling script to package.json using ncc. - Introduced new linting and formatting scripts in package.json. - Refactored input handling in src/index.ts to use helper functions for boolean inputs and default paths. - Created unit tests for the run function in tests/index.test.ts to validate default and provided configurations. - Added vitest configuration for testing environment and coverage.
1 parent e0e228f commit 4a72a5d

File tree

10 files changed

+4224
-40
lines changed

10 files changed

+4224
-40
lines changed

.prettierignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
dist
2+
node_modules
3+
coverage

.prettierrc.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"singleQuote": true,
3+
"trailingComma": "all",
4+
"printWidth": 100,
5+
"semi": true
6+
}

action.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ inputs:
55
track:
66
description: CPython minor series to track (for example 3.13).
77
required: false
8-
default: "3.13"
8+
default: '3.13'
99
include_prerelease:
1010
description: Include pre-release tags when resolving the latest patch version.
1111
required: false
12-
default: "false"
12+
default: 'false'
1313
paths:
1414
description: Newline-separated glob patterns that determine which files to scan for pinned Python versions.
1515
required: false
@@ -23,11 +23,11 @@ inputs:
2323
automerge:
2424
description: Attempt to automerge the pull request after required checks succeed.
2525
required: false
26-
default: "false"
26+
default: 'false'
2727
dry_run:
2828
description: Skip file modifications and output the planned changes only.
2929
required: false
30-
default: "false"
30+
default: 'false'
3131
outputs:
3232
new_version:
3333
description: Resolved CPython patch version (for example 3.13.5).

docs/tasks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ Use Context7 MCP for up to date documentation.
7979
Outputs: `new_version`, `files_changed`, `skipped_reason`. `runs: node20`.
8080
Verify: `actionlint` passes on sample workflow.
8181

82-
4. [ ] **Add dev tooling**
82+
4. [x] **Add dev tooling**
8383
Install `eslint`, `prettier`, `vitest`, `@types/node`, `@vercel/ncc`, `actionlint`.
8484
Verify: `npm run lint` and `npm run test` pass.
8585

eslint.config.mjs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import js from '@eslint/js';
2+
import tsPlugin from '@typescript-eslint/eslint-plugin';
3+
import tsParser from '@typescript-eslint/parser';
4+
import prettierPlugin from 'eslint-plugin-prettier';
5+
import prettierRecommended from 'eslint-plugin-prettier/recommended';
6+
7+
export default [
8+
{
9+
ignores: ['dist', 'node_modules', 'coverage'],
10+
},
11+
js.configs.recommended,
12+
{
13+
files: ['**/*.ts'],
14+
languageOptions: {
15+
parser: tsParser,
16+
parserOptions: {
17+
sourceType: 'module',
18+
},
19+
globals: {
20+
require: 'readonly',
21+
module: 'readonly',
22+
},
23+
},
24+
plugins: {
25+
'@typescript-eslint': tsPlugin,
26+
prettier: prettierPlugin,
27+
},
28+
rules: {
29+
...tsPlugin.configs.recommended.rules,
30+
'@typescript-eslint/explicit-function-return-type': [
31+
'error',
32+
{
33+
allowExpressions: true,
34+
allowTypedFunctionExpressions: true,
35+
},
36+
],
37+
'prettier/prettier': 'error',
38+
},
39+
},
40+
prettierRecommended,
41+
];

0 commit comments

Comments
 (0)