Skip to content

Commit 869a873

Browse files
GooolerCopilot
andauthored
Update action runtime to node24 and polish e2e test matrix (#98)
* Update e2e workflow to macOS 15 and 26; drop deprecated runners macOS 12, 13, and 14 GitHub Actions runners are deprecated. This replaces them with current macOS 15 and macOS 26 (Tahoe) runners and updates the Xcode version matrices to match what's actually available on each image. ## Changes - **Removed**: `versions-macOS-12`, `versions-macOS-13`, `versions-macOS-14` jobs - **Added** `versions-macOS-15` — tests Xcode `16.2`, `16.4`, `latest`, `latest-stable` ([runner image ref](https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md#xcode)) - **Added** `versions-macOS-26` — tests Xcode `26.2`, `26.3`, `latest`, `latest-stable` ([runner image ref](https://github.com/actions/runner-images/blob/main/images/macos/macos-26-Readme.md#xcode)) - **Added** top-level `permissions: contents: read` (least-privilege hardening) --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Goooler <10363352+Goooler@users.noreply.github.com> * Update action runtime to node24 GitHub Actions now supports `node24` as a runtime target. This updates the action to use it. https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ ## Changes - **`action.yml`**: `using: node20` → `using: node24` - **`package.json`**: `@types/node` bumped from `^20.6.3` → `^24.0.0` - **`.github/workflows/workflow.yml`**: CI node version `20.x` → `24.x` - **`dist/index.js`**: rebuilt against updated dependencies --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Goooler <10363352+Goooler@users.noreply.github.com> Co-authored-by: Zongle Wang <wangzongler@gmail.com> * Reduce boilerplate in e2e.yml using matrix strategy Two nearly identical jobs (`versions-macOS-15`, `versions-macOS-26`) duplicated all steps, differing only in runner and Xcode versions. ## Changes - **Merged into single `versions` job** using a 2D matrix (`runner` × `xcode-version`) - **Shared versions** (`latest`, `latest-stable`) expressed as cross-product across both runners - **Runner-specific numeric versions** added via `include` entries ```yaml strategy: matrix: runner: [macos-15, macos-26] xcode-version: [latest, latest-stable] include: # https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md#xcode - runner: macos-15 xcode-version: '16.2' - runner: macos-15 xcode-version: '16.4' # https://github.com/actions/runner-images/blob/main/images/macos/macos-26-Readme.md#xcode - runner: macos-26 xcode-version: '26.2' - runner: macos-26 xcode-version: '26.3' fail-fast: false ``` All 8 original test combinations are preserved. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Goooler <10363352+Goooler@users.noreply.github.com> --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Goooler <10363352+Goooler@users.noreply.github.com>
1 parent 7f352e6 commit 869a873

File tree

5 files changed

+51
-59
lines changed

5 files changed

+51
-59
lines changed

.github/workflows/e2e.yml

Lines changed: 19 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -7,56 +7,28 @@ on:
77
schedule:
88
- cron: 0 0 * * *
99

10-
jobs:
11-
versions-macOS-12:
12-
name: macOS 12
13-
runs-on: macos-12
14-
strategy:
15-
matrix:
16-
xcode-version: ['13.2.1', '13.4', '14.0.1', '14', '14.2', latest, latest-stable]
17-
fail-fast: false
18-
steps:
19-
- name: Checkout
20-
uses: actions/checkout@v4
21-
22-
- uses: ./
23-
name: Setup Xcode
24-
id: setup-xcode
25-
with:
26-
xcode-version: ${{ matrix.xcode-version }}
27-
- name: Print output variables
28-
run: |
29-
echo "Version: ${{ steps.setup-xcode.outputs.version }}"
30-
echo "Path: ${{ steps.setup-xcode.outputs.path }}"
10+
permissions:
11+
contents: read
3112

32-
versions-macOS-13:
33-
name: macOS 13
34-
runs-on: macos-13
35-
strategy:
36-
matrix:
37-
xcode-version: ['14', '14.2', '14.3.1', latest, latest-stable]
38-
fail-fast: false
39-
steps:
40-
- name: Checkout
41-
uses: actions/checkout@v4
42-
43-
- uses: ./
44-
name: Setup Xcode
45-
id: setup-xcode
46-
with:
47-
xcode-version: ${{ matrix.xcode-version }}
48-
- name: Print output variables
49-
run: |
50-
echo "Version: ${{ steps.setup-xcode.outputs.version }}"
51-
echo "Path: ${{ steps.setup-xcode.outputs.path }}"
52-
53-
versions-macOS-14:
54-
name: macOS 14
55-
runs-on: macos-14
13+
jobs:
14+
versions:
15+
name: ${{ matrix.runner }} / ${{ matrix.xcode-version }}
16+
runs-on: ${{ matrix.runner }}
5617
strategy:
5718
matrix:
58-
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md#xcode
59-
xcode-version: ['14.3.1', '15.2', '15.3', latest, latest-stable]
19+
runner: [macos-15, macos-26]
20+
xcode-version: [latest, latest-stable]
21+
include:
22+
# https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md#xcode
23+
- runner: macos-15
24+
xcode-version: '16.2'
25+
- runner: macos-15
26+
xcode-version: '16.4'
27+
# https://github.com/actions/runner-images/blob/main/images/macos/macos-26-Readme.md#xcode
28+
- runner: macos-26
29+
xcode-version: '26.2'
30+
- runner: macos-26
31+
xcode-version: '26.3'
6032
fail-fast: false
6133
steps:
6234
- name: Checkout

.github/workflows/workflow.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Set Node.JS
1818
uses: actions/setup-node@v4
1919
with:
20-
node-version: 20.x
20+
node-version: 24.x
2121

2222
- name: npm install
2323
run: npm install

action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ inputs:
77
required: false
88
default: latest
99
runs:
10-
using: 'node20'
10+
using: 'node24'
1111
main: 'dist/index.js'
1212
branding:
1313
icon: 'code'

package-lock.json

Lines changed: 29 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
},
3030
"devDependencies": {
3131
"@types/jest": "^29.5.5",
32-
"@types/node": "^20.6.3",
32+
"@types/node": "^24.0.0",
3333
"@types/plist": "^3.0.2",
3434
"@types/semver": "^7.5.2",
3535
"@typescript-eslint/eslint-plugin": "^6.7.2",

0 commit comments

Comments
 (0)