Adopt Hermes' first-party Node-API (static_h) #1086
check.yml
on: pull_request
Lint
2m 12s
Test app (iOS)
20m 55s
Test app (macOS)
9m 45s
Test app (Android)
6m 58s
Test ferric Apple triplets
Matrix: unit-tests
Matrix: weak-node-api-tests
Annotations
11 errors, 12 warnings, and 9 notices
|
Unit tests (ubuntu-latest)
Process completed with exit code 1.
|
|
should call the CLI to autolink:
packages/host/packages/host/src/node/gradle.test.ts#L64
AssertionError [ERR_ASSERTION]: Expected success: > Task :gradle-plugin:react-native-gradle-plugin:checkKotlinGradlePluginConfigurationErrors SKIPPED
> Task :gradle-plugin:shared:checkKotlinGradlePluginConfigurationErrors SKIPPED
> Task :gradle-plugin:shared:compileKotlin UP-TO-DATE
> Task :gradle-plugin:shared:compileJava NO-SOURCE
> Task :gradle-plugin:shared:processResources NO-SOURCE
> Task :gradle-plugin:shared:classes UP-TO-DATE
> Task :gradle-plugin:shared:jar UP-TO-DATE
> Task :gradle-plugin:react-native-gradle-plugin:compileKotlin UP-TO-DATE
> Task :gradle-plugin:react-native-gradle-plugin:compileJava NO-SOURCE
> Task :gradle-plugin:react-native-gradle-plugin:pluginDescriptors UP-TO-DATE
> Task :gradle-plugin:react-native-gradle-plugin:processResources UP-TO-DATE
> Task :gradle-plugin:react-native-gradle-plugin:classes UP-TO-DATE
> Task :gradle-plugin:react-native-gradle-plugin:jar UP-TO-DATE
> Configure project :app
Signing config for 'release' build type not found; reusing debug config
> Task :react-native-node-api:linkNodeApiModules FAILED
[Incubating] Problems report is available at: file:///home/runner/work/react-native-node-api/react-native-node-api/apps/test-app/android/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/9.3.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
7 actionable tasks: 1 executed, 6 up-to-date
FAILURE: Build failed with an exception.
* Where:
Build file '/home/runner/work/react-native-node-api/react-native-node-api/node_modules/react-native-node-api/android/build.gradle' line: 167
* What went wrong:
Execution failed for task ':react-native-node-api:linkNodeApiModules'.
> Could not find method exec() for arguments [build_38f9j616tl7zwf8a64wveuj53$_run_closure4$_closure24$_closure25@3ae751fa] on task ':react-native-node-api:linkNodeApiModules' of type org.gradle.api.DefaultTask.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights from a Build Scan (powered by Develocity).
> Get more help at https://help.gradle.org.
BUILD FAILED in 1s
1 !== 0
at TestContext.<anonymous> (/home/runner/work/react-native-node-api/react-native-node-api/packages/host/src/node/gradle.test.ts:64:16)
at Test.runInAsyncScope (node:async_hooks:227:14)
at Test.run (node:internal/test_runner/test:1325:25)
at Suite.processPendingSubtests (node:internal/test_runner/test:911:18)
at Test.postRun (node:internal/test_runner/test:1465:19)
at Test.run (node:internal/test_runner/test:1390:12)
at async Promise.all (index 0)
at async Suite.run (node:internal/test_runner/test:1794:7)
at async Promise.all (index 0)
at async Suite.run (node:internal/test_runner/test:1794:7) {
generatedMessage: false,
code: 'ERR_ASSERTION',
actual: 1,
expected: 0,
operator: 'strictEqual',
diff: 'simple'
}
|
|
Unit tests (windows-latest)
Process completed with exit code 1.
|
|
should call the CLI to autolink:
packages\host\packages\host\src\node\gradle.test.ts#L64
AssertionError [ERR_ASSERTION]: Expected success:
[Incubating] Problems report is available at: file:///D:/a/react-native-node-api/react-native-node-api/apps/test-app/android/build/reports/problems/problems-report.html
FAILURE: Build failed with an exception.
* What went wrong:
Configuring project ':packages:react-native' without an existing directory is not allowed. The configured projectDirectory 'D:\a\react-native-node-api\react-native-node-api\node_modules\react-native\tmp' does not exist, can't be written to or is not a directory.
* Try:
> Make sure the project directory exists and is writable.
> For more information, see https://docs.gradle.org/9.3.1/userguide/multi_project_builds.html#include_existing_projects_only
> Run with --scan to get full insights from a Build Scan (powered by Develocity).
BUILD FAILED in 1s
1 !== 0
at TestContext.<anonymous> (D:\a\react-native-node-api\react-native-node-api\packages\host\src\node\gradle.test.ts:64:16)
at Test.runInAsyncScope (node:async_hooks:227:14)
at Test.run (node:internal/test_runner/test:1325:25)
at Suite.processPendingSubtests (node:internal/test_runner/test:911:18)
at Test.postRun (node:internal/test_runner/test:1465:19)
at Test.run (node:internal/test_runner/test:1390:12)
at async Promise.all (index 0)
at async Suite.run (node:internal/test_runner/test:1794:7)
at async Promise.all (index 0)
at async Suite.run (node:internal/test_runner/test:1794:7) {
generatedMessage: false,
code: 'ERR_ASSERTION',
actual: 1,
expected: 0,
operator: 'strictEqual',
diff: 'simple'
}
|
|
should fail if REACT_NATIVE_OVERRIDE_HERMES_DIR is not set:
packages\host\packages\host\src\node\gradle.test.ts#L31
AssertionError [ERR_ASSERTION]: The input did not match the regular expression /React Native Node-API needs a custom version of Hermes with Node-API enabled/. Input:
'\r\n' +
'FAILURE: Build failed with an exception.\r\n' +
'\r\n' +
'* What went wrong:\r\n' +
"Configuring project ':packages:react-native' without an existing directory is not allowed. The configured projectDirectory 'D:\\a\\react-native-node-api\\react-native-node-api\\node_modules\\react-native\\tmp' does not exist, can't be written to or is not a directory.\r\n" +
'\r\n' +
'* Try:\r\n' +
'> Make sure the project directory exists and is writable.\r\n' +
'> For more information, see https://docs.gradle.org/9.3.1/userguide/multi_project_builds.html#include_existing_projects_only\r\n' +
'> Run with --scan to get full insights from a Build Scan (powered by Develocity).\r\n' +
'\r\n' +
'BUILD FAILED in 42s\r\n'
at TestContext.<anonymous> (D:\a\react-native-node-api\react-native-node-api\packages\host\src\node\gradle.test.ts:31:16)
at Test.runInAsyncScope (node:async_hooks:227:14)
at Test.run (node:internal/test_runner/test:1325:25)
at Test.start (node:internal/test_runner/test:1191:17)
at node:internal/test_runner/test:1792:71
at node:internal/per_context/primordials:466:82
at new Promise (<anonymous>)
at new SafePromise (node:internal/per_context/primordials:435:3)
at node:internal/per_context/primordials:466:9
at Array.map (<anonymous>) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: "\r\nFAILURE: Build failed with an exception.\r\n\r\n* What went wrong:\r\nConfiguring project ':packages:react-native' without an existing directory is not allowed. The configured projectDirectory 'D:\\a\\react-native-node-api\\react-native-node-api\\node_modules\\react-native\\tmp' does not exist, can't be written to or is not a directory.\r\n\r\n* Try:\r\n> Make sure the project directory exists and is writable.\r\n> For more information, see https://docs.gradle.org/9.3.1/userguide/multi_project_builds.html#include_existing_projects_only\r\n> Run with --scan to get full insights from a Build Scan (powered by Develocity).\r\n\r\nBUILD FAILED in 42s\r\n",
expected: /React Native Node-API needs a custom version of Hermes with Node-API enabled/,
operator: 'match',
diff: 'simple'
}
|
|
Test app (macOS)
Process completed with exit code 1.
|
|
Test app (macOS)
error: Internal inconsistency error: never received target ended message for target ID '0' (in target 'MacOSTestApp-macOS' from project 'MacOSTestApp').
|
|
Unit tests (macos-latest)
Process completed with exit code 1.
|
|
should call the CLI to autolink:
packages/host/packages/host/src/node/gradle.test.ts#L64
AssertionError [ERR_ASSERTION]: Expected success: > Task :gradle-plugin:react-native-gradle-plugin:checkKotlinGradlePluginConfigurationErrors SKIPPED
> Task :gradle-plugin:shared:checkKotlinGradlePluginConfigurationErrors SKIPPED
> Task :gradle-plugin:shared:compileKotlin UP-TO-DATE
> Task :gradle-plugin:shared:compileJava NO-SOURCE
> Task :gradle-plugin:shared:processResources NO-SOURCE
> Task :gradle-plugin:shared:classes UP-TO-DATE
> Task :gradle-plugin:shared:jar UP-TO-DATE
> Task :gradle-plugin:react-native-gradle-plugin:compileKotlin UP-TO-DATE
> Task :gradle-plugin:react-native-gradle-plugin:compileJava NO-SOURCE
> Task :gradle-plugin:react-native-gradle-plugin:pluginDescriptors UP-TO-DATE
> Task :gradle-plugin:react-native-gradle-plugin:processResources UP-TO-DATE
> Task :gradle-plugin:react-native-gradle-plugin:classes UP-TO-DATE
> Task :gradle-plugin:react-native-gradle-plugin:jar UP-TO-DATE
> Configure project :app
Signing config for 'release' build type not found; reusing debug config
> Task :react-native-node-api:linkNodeApiModules FAILED
[Incubating] Problems report is available at: file:///Users/runner/work/react-native-node-api/react-native-node-api/apps/test-app/android/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/9.3.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
7 actionable tasks: 1 executed, 6 up-to-date
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/runner/work/react-native-node-api/react-native-node-api/node_modules/react-native-node-api/android/build.gradle' line: 167
* What went wrong:
Execution failed for task ':react-native-node-api:linkNodeApiModules'.
> Could not find method exec() for arguments [build_2v4tyiehulkv5a2wshpyg14uv$_run_closure4$_closure24$_closure25@2d830bcb] on task ':react-native-node-api:linkNodeApiModules' of type org.gradle.api.DefaultTask.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights from a Build Scan (powered by Develocity).
> Get more help at https://help.gradle.org.
BUILD FAILED in 3s
1 !== 0
at TestContext.<anonymous> (/Users/runner/work/react-native-node-api/react-native-node-api/packages/host/src/node/gradle.test.ts:64:16)
at Test.runInAsyncScope (node:async_hooks:227:14)
at Test.run (node:internal/test_runner/test:1325:25)
at Suite.processPendingSubtests (node:internal/test_runner/test:911:18)
at Test.postRun (node:internal/test_runner/test:1465:19)
at Test.run (node:internal/test_runner/test:1390:12)
at async Promise.all (index 0)
at async Suite.run (node:internal/test_runner/test:1794:7)
at async Promise.all (index 0)
at async Suite.run (node:internal/test_runner/test:1794:7) {
generatedMessage: false,
code: 'ERR_ASSERTION',
actual: 1,
expected: 0,
operator: 'strictEqual',
diff: 'simple'
}
|
|
Test app (iOS)
Process completed with exit code 1.
|
|
Test app (Android)
The operation was canceled.
|
|
Lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-java@v3, android-actions/setup-android@v3, hendrikmuhs/ccache-action@v1.2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit tests (ubuntu-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-java@v4, android-actions/setup-android@v3, hendrikmuhs/ccache-action@v1.2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit tests (windows-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-java@v4, android-actions/setup-android@v3, hendrikmuhs/ccache-action@v1.2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Test app (macOS)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-java@v3, hendrikmuhs/ccache-action@v1.2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Test app (macOS)
Run script build phase '[Node-API] Copy, rename and sign frameworks' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'MacOSTestApp-macOS' from project 'MacOSTestApp')
|
|
Test app (macOS)
Run script build phase 'Bundle React Native code and images' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'MacOSTestApp-macOS' from project 'MacOSTestApp')
|
|
Test app (macOS)
The following taps are not trusted:
aws/tap
Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required.
Untap them with:
brew untap aws/tap
Trust specific formulae, casks and commands with:
brew trust --formula <user>/<tap>/<formula>
brew trust --cask <user>/<tap>/<cask>
brew trust --command <user>/<tap>/<command>
Whole-tap trust is broader and includes all current and future formulae,
casks and commands from the listed taps. Trust whole taps with:
brew trust aws/tap
To disable trust checks:
export HOMEBREW_NO_REQUIRE_TAP_TRUST=1
This is not recommended and will be removed in a later release.
For more information, see:
https://docs.brew.sh/Tap-Trust
|
|
Unit tests (macos-latest)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-java@v4, android-actions/setup-android@v3, hendrikmuhs/ccache-action@v1.2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit tests (macos-latest)
The following taps are not trusted:
aws/tap
Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required.
Untap them with:
brew untap aws/tap
Trust specific formulae, casks and commands with:
brew trust --formula <user>/<tap>/<formula>
brew trust --cask <user>/<tap>/<cask>
brew trust --command <user>/<tap>/<command>
Whole-tap trust is broader and includes all current and future formulae,
casks and commands from the listed taps. Trust whole taps with:
brew trust aws/tap
To disable trust checks:
export HOMEBREW_NO_REQUIRE_TAP_TRUST=1
This is not recommended and will be removed in a later release.
For more information, see:
https://docs.brew.sh/Tap-Trust
|
|
Test app (iOS)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-java@v3, android-actions/setup-android@v3, hendrikmuhs/ccache-action@v1.2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Test app (iOS)
The following taps are not trusted:
aws/tap
Homebrew is currently ignoring formulae, casks and commands from these taps because tap trust is required.
Untap them with:
brew untap aws/tap
Trust specific formulae, casks and commands with:
brew trust --formula <user>/<tap>/<formula>
brew trust --cask <user>/<tap>/<cask>
brew trust --command <user>/<tap>/<command>
Whole-tap trust is broader and includes all current and future formulae,
casks and commands from the listed taps. Trust whole taps with:
brew trust aws/tap
To disable trust checks:
export HOMEBREW_NO_REQUIRE_TAP_TRUST=1
This is not recommended and will be removed in a later release.
For more information, see:
https://docs.brew.sh/Tap-Trust
|
|
Test app (Android)
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-java@v4, android-actions/setup-android@v3, hendrikmuhs/ccache-action@v1.2. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
|
|
Unit tests (ubuntu-latest)
Total Tests: 20
Suites π: 8
Passed β
: 20
Failed β: 0
Canceled π«: 0
Skipped βοΈ: 0
Todo π: 0
Duration π: 497.580ms
|
|
Unit tests (ubuntu-latest)
Total Tests: 3
Suites π: 2
Passed β
: 3
Failed β: 0
Canceled π«: 0
Skipped βοΈ: 0
Todo π: 0
Duration π: 526.842ms
|
|
Unit tests (ubuntu-latest)
Total Tests: 56
Suites π: 25
Passed β
: 55
Failed β: 1
Canceled π«: 0
Skipped βοΈ: 0
Todo π: 0
Duration π: 86671.348ms
|
|
Unit tests (windows-latest)
Total Tests: 20
Suites π: 8
Passed β
: 20
Failed β: 0
Canceled π«: 0
Skipped βοΈ: 0
Todo π: 0
Duration π: 766.287ms
|
|
Unit tests (windows-latest)
Total Tests: 3
Suites π: 2
Passed β
: 3
Failed β: 0
Canceled π«: 0
Skipped βοΈ: 0
Todo π: 0
Duration π: 847.372ms
|
|
Unit tests (windows-latest)
Total Tests: 56
Suites π: 25
Passed β
: 52
Failed β: 2
Canceled π«: 0
Skipped βοΈ: 2
Todo π: 0
Duration π: 47386.179ms
|
|
Unit tests (macos-latest)
Total Tests: 20
Suites π: 8
Passed β
: 20
Failed β: 0
Canceled π«: 0
Skipped βοΈ: 0
Todo π: 0
Duration π: 709.594ms
|
|
Unit tests (macos-latest)
Total Tests: 3
Suites π: 2
Passed β
: 3
Failed β: 0
Canceled π«: 0
Skipped βοΈ: 0
Todo π: 0
Duration π: 1464.715ms
|
|
Unit tests (macos-latest)
Total Tests: 63
Suites π: 30
Passed β
: 62
Failed β: 1
Canceled π«: 0
Skipped βοΈ: 0
Todo π: 0
Duration π: 170489.846ms
|