Skip to content

Commit 2f743aa

Browse files
authored
feat!: modernize tooling - esbuild, npm, git-cliff, vitest, node24 (#71)
1 parent ba30d74 commit 2f743aa

21 files changed

Lines changed: 5117 additions & 6109 deletions

.editorconfig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# editorconfig.org
2+
root = true
3+
4+
[*]
5+
charset = utf-8
6+
indent_style = space
7+
indent_size = 2
8+
end_of_line = lf
9+
insert_final_newline = true
10+
trim_trailing_whitespace = true
11+
12+
[*.md]
13+
insert_final_newline = true
14+
trim_trailing_whitespace = false
15+
max_line_length = 140

.gitattributes

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
1-
.eslintrc.js linguist-vendored
2-
.prettierrc.js linguist-vendored
3-
41
dist/** linguist-generated

.github/workflows/integration.yml

Lines changed: 52 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,76 @@
11
name: integration
22

33
on:
4+
pull_request:
5+
branches:
6+
- main
7+
paths:
8+
- '.github/workflows/**'
9+
- 'dist/**'
10+
- 'src/**'
11+
- 'action.yml'
12+
- 'package.json'
13+
- 'package-lock.json'
414
push:
515
branches:
616
- main
717
paths:
8-
- '.github/workflows/integration.yml'
18+
- '.github/workflows/**'
919
- 'dist/**'
1020
- 'src/**'
1121
- 'action.yml'
12-
- 'yarn.lock'
22+
- 'package.json'
23+
- 'package-lock.json'
24+
25+
permissions:
26+
contents: read
27+
28+
concurrency:
29+
group: ${{ github.workflow }}-${{ github.ref }}
30+
cancel-in-progress: true
1331

1432
jobs:
33+
verify-build:
34+
name: Verify dist is up to date
35+
runs-on: ubuntu-latest
36+
steps:
37+
- name: Checkout
38+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
39+
with:
40+
persist-credentials: false
41+
42+
- name: Setup Node.js
43+
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
44+
with:
45+
node-version: 24
46+
47+
- name: Install and build
48+
run: |
49+
npm ci --ignore-scripts
50+
npm run all
51+
52+
- name: Check for uncommitted changes
53+
run: |
54+
if ! git diff --quiet dist/; then
55+
echo "::error::dist/index.js is out of date. Run 'npm run compile' and commit the result."
56+
git diff --stat dist/
57+
exit 1
58+
fi
59+
1560
e2e:
1661
name: e2e test
1762
runs-on: ubuntu-latest
18-
# These permissions are needed to interact with GitHub's OIDC Token endpoint.
1963
permissions:
2064
id-token: write
21-
contents: write
65+
contents: read
2266
steps:
2367
- name: Checkout
24-
uses: actions/checkout@v6
68+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
69+
with:
70+
persist-credentials: false
2571

2672
- name: Configure AWS credentials
27-
uses: aws-actions/configure-aws-credentials@master
73+
uses: aws-actions/configure-aws-credentials@cabfdba3510de1431bac9dba27511d97497fc100 # v5
2874
with:
2975
aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
3076
role-to-assume: ${{ secrets.AWS_IAM_ROLE }}

.github/workflows/release.yml

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,42 @@ on:
99
- 'dist/**'
1010
- 'src/**'
1111
- 'action.yml'
12-
- 'yarn.lock'
12+
- 'package.json'
13+
- 'package-lock.json'
14+
15+
permissions:
16+
contents: write
17+
18+
concurrency:
19+
group: ${{ github.workflow }}-${{ github.ref }}
20+
cancel-in-progress: false
1321

1422
jobs:
1523
release:
1624
name: release
1725
runs-on: ubuntu-latest
1826
steps:
1927
- name: Checkout
20-
uses: actions/checkout@v6
28+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
2129
with:
2230
fetch-depth: 0
2331
persist-credentials: false
2432

25-
- name: Setup Node.js
26-
uses: actions/setup-node@v6
33+
- name: Determine next version
34+
id: git-cliff
35+
uses: orhun/git-cliff-action@c93ef52f3d0ddcdcc9bd5447d98d458a11cd4f72 # v4
2736
with:
28-
node-version: 24
37+
config: cliff.toml
38+
args: --bump --unreleased
39+
env:
40+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2941

30-
- name: Release
42+
- name: Create release
43+
if: steps.git-cliff.outputs.version != ''
44+
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2
45+
with:
46+
tag_name: ${{ steps.git-cliff.outputs.version }}
47+
body: ${{ steps.git-cliff.outputs.content }}
48+
make_latest: "true"
3149
env:
32-
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE }}
33-
run: |
34-
yarn
35-
yarn release
50+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 4 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,26 @@
11
# Dependency directory
22
node_modules
33

4-
# Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
54
# Logs
65
logs
76
*.log
87
npm-debug.log*
9-
yarn-debug.log*
10-
yarn-error.log*
118
lerna-debug.log*
129

13-
# Diagnostic reports (https://nodejs.org/api/report.html)
14-
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
15-
1610
# Runtime data
1711
pids
1812
*.pid
1913
*.seed
2014
*.pid.lock
2115

22-
# Directory for instrumented libs generated by jscoverage/JSCover
23-
lib-cov
24-
25-
# Coverage directory used by tools like istanbul
16+
# Coverage
2617
coverage
2718
*.lcov
28-
29-
# nyc test coverage
3019
.nyc_output
3120

32-
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
33-
.grunt
34-
35-
# Bower dependency directory (https://bower.io/)
36-
bower_components
37-
38-
# node-waf configuration
39-
.lock-wscript
40-
41-
# Compiled binary addons (https://nodejs.org/api/addons.html)
21+
# Compiled binary addons
4222
build/Release
4323

44-
# Dependency directories
45-
jspm_packages/
46-
47-
# TypeScript v1 declaration files
48-
typings/
49-
5024
# TypeScript cache
5125
*.tsbuildinfo
5226

@@ -56,39 +30,15 @@ typings/
5630
# Optional eslint cache
5731
.eslintcache
5832

59-
# Optional REPL history
60-
.node_repl_history
61-
6233
# Output of 'npm pack'
6334
*.tgz
6435

65-
# Yarn Integrity file
66-
.yarn-integrity
67-
6836
# dotenv environment variables file
6937
.env
7038
.env.test
7139

72-
# parcel-bundler cache (https://parceljs.org/)
73-
.cache
74-
75-
# next.js build output
76-
.next
77-
78-
# nuxt.js build output
79-
.nuxt
80-
81-
# vuepress build output
82-
.vuepress/dist
83-
84-
# Serverless directories
85-
.serverless/
86-
87-
# FuseBox cache
88-
.fusebox/
89-
90-
# DynamoDB Local files
91-
.dynamodb/
40+
# Plan files
41+
docs/plans/
9242

9343
# OS metadata
9444
.DS_Store

CHANGELOG.md

Lines changed: 0 additions & 92 deletions
This file was deleted.

0 commit comments

Comments
 (0)