Skip to content

Update action runtime to node24 and polish e2e test matrix#98

Open
Goooler wants to merge 3 commits intomaxim-lobanov:masterfrom
Goooler:master
Open

Update action runtime to node24 and polish e2e test matrix#98
Goooler wants to merge 3 commits intomaxim-lobanov:masterfrom
Goooler:master

Conversation

@Goooler
Copy link
Contributor

@Goooler Goooler commented Mar 4, 2026

Copilot AI and others added 2 commits March 4, 2026 19:34
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>
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>
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants