Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
26 changes: 26 additions & 0 deletions .github/actions/setup-node-and-node-modules/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: 'Setup Node and node_modules cache'
description: 'Setup Node.js and node_modules'
inputs:
node-version:
description: 'Node.js version'
required: true
outputs:
cache-hit:
description: 'Whether node_modules cache was hit'
value: ${{ steps.node-modules-cache.outputs.cache-hit }}
runs:
using: 'composite'
steps:
- uses: actions/setup-node@v4
id: setup-node
with:
node-version: ${{ inputs.node-version }}
- uses: actions/cache@v4
id: node-modules-cache
with:
path: node_modules
key: node-modules-${{ runner.arch }}-${{ runner.os }}-node-${{ steps.setup-node.outputs.node-version }}-npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: node-modules-${{ runner.arch }}-${{ runner.os }}-node-${{ steps.setup-node.outputs.node-version }}-npm-
- run: npm install
if: steps.node-modules-cache.outputs.cache-hit != 'true'
shell: sh
39 changes: 16 additions & 23 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,77 +14,70 @@ jobs:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: ./.github/actions/setup-node-and-node-modules
with:
node-version: 22
cache: 'npm'
- uses: actions/cache@v4
with:
path: |
node_modules/.cache/prettier/.prettier-cache
packages/*/dist
packages/*/tsconfig.build.tsbuildinfo
tsconfig.tsbuildinfo
packages/*/{dist,tsconfig.build.tsbuildinfo}
.eslintcache
key: toolcache-lint-${{ runner.os }}-${{ github.sha }}
restore-keys: toolcache-lint-${{ runner.os }}
- run: npm install
key: lint-tools-${{ runner.arch }}-${{ runner.os }}-${{ github.sha }}
restore-keys: lint-tools-${{ runner.arch }}-${{ runner.os }}
- run: npm run lint
build:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: ./.github/actions/setup-node-and-node-modules
with:
node-version: 22
cache: 'npm'
- run: npm install
- run: npm run build
test:
strategy:
fail-fast: false
matrix:
node: [20, 22]
os: [ubuntu-24.04-arm, windows-2025]
os: [ubuntu-24.04-arm, windows-11-arm]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: ./.github/actions/setup-node-and-node-modules
with:
node-version: ${{ matrix.node }}
cache: 'npm'
- uses: actions/cache@v4
with:
path: node_modules/.vite/vitest
key: toolcache-test-${{ runner.os }}-node${{ matrix.node }}-${{ github.sha }}
restore-keys: toolcache-test-${{ runner.os }}-node${{ matrix.node }}
- run: npm install
key: test-tools-${{ runner.arch }}-${{ runner.os }}-node-${{ matrix.node }}-${{ github.sha }}
restore-keys: test-tools-${{ runner.arch }}-${{ runner.os }}-node-${{ matrix.node }}
- run: npm run test
e2e:
strategy:
fail-fast: false
matrix:
node: [20, 22]
os: [ubuntu-24.04-arm, windows-2025]
os: [ubuntu-24.04-arm, windows-11-arm]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: ./.github/actions/setup-node-and-node-modules
with:
node-version: ${{ matrix.node }}
cache: 'npm'
- uses: actions/cache@v4
with:
path: |
node_modules/.vite/vitest
packages/*/dist
packages/*/tsconfig.build.tsbuildinfo
key: toolcache-e2e-${{ runner.os }}-node${{ matrix.node }}-${{ github.sha }}
restore-keys: toolcache-e2e-${{ runner.os }}-node${{ matrix.node }}
tsconfig.tsbuildinfo
key: e2e-tools-${{ runner.arch }}-${{ runner.os }}-node-${{ matrix.node }}-${{ github.sha }}
restore-keys: e2e-tools-${{ runner.arch }}-${{ runner.os }}-node-${{ matrix.node }}
- uses: actions/cache@v4
with:
path: .vscode-test
key: ${{ runner.os }}-vscode-${{ env.VSCODE_VERSION }}
- run: npm install
key: vscode-test-${{ runner.arch }}-${{ runner.os }}-vscode-${{ env.VSCODE_VERSION }}

- run: xvfb-run -a npm run e2e
if: runner.os == 'Linux'
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"build": "tsc -b tsconfig.build.json",
"lint": "run-s -c lint:*",
"lint:tsc": "tsc -b",
"lint:eslint": "eslint --cache --cache-strategy content .",
"lint:eslint": "eslint .",
"lint:prettier": "prettier --cache --check .",
"test": "vitest --run --project unit",
"e2e": "run-s -c e2e:build e2e:vitest e2e:vscode",
Expand Down