Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/47087
In the repo, we don't have a `build-apple-framewroks.sh` file, but we do have a `build-apple-framewrok.sh` file, with no ending `s`
## Changelog:
[Internal] - Fix CI cache key
Reviewed By: cortinico
Differential Revision: D64531456
fbshipit-source-id: 05c104390b875eeef2cf15f8a30c8672cfc9b61d
Summary:
After examining Hermes artifacts built after merging of https://github.com/facebook/react-native/issues/46865 , it was apparent that tvOS frameworks were missing from the Hermes universal framework generated by CI.
I went back and discovered additional steps that need to be added to the `build-hermes-macos` action to make CI work correctly.
## Changelog:
[Internal][Fixed] add required steps to build tvOS in build-hermes-macos action
Pull Request resolved: https://github.com/facebook/react-native/pull/47073
Test Plan: After merging, Hermes artifacts generated by CI should contain the missing tvOS bits.
Reviewed By: rshest
Differential Revision: D64528911
Pulled By: cipolleschi
fbshipit-source-id: 61db3e154767830a4726d7ceeec229a4af30d247
Summary:
Adds tvOS to the list of Apple platforms supported by the Hermes artifacts. After this, the React Native TV builds will be able to use the same Hermes artifacts as those used by RN core.
~Added some code in `hermes-utils.rb` so that the Hermes podspec can use a local Maven repo (`/tmp/maven-local`).~
> *Note:* ~This PR should not be merged until the corresponding Hermes PR https://github.com/facebook/hermes/pull/1529 is merged.~ (https://github.com/facebook/hermes/pull/1529 has been merged)
## Changelog:
[iOS][Added] tvOS support for Hermes artifacts
Pull Request resolved: https://github.com/facebook/react-native/pull/46865
Test Plan: - tvOS is also added to the build and test GitHub workflows.
Reviewed By: rshest
Differential Revision: D64461324
Pulled By: cipolleschi
fbshipit-source-id: d63889c60c72519818e7076cd0ab5851791715a1
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46472
Currently, we are building the Debug symbols (dSYM) for hermes dSYM but we are not shipping them with the xcframework.
This is correct, because Debug symbols can increase the size of Hermes thus enalrging the iOS IPA and increasing the download time when installing pods.
We distribute the dSYM separatedly, in case users needs to symbolicate Hermes stack traces.
However the path to the dSYM still appears in the Info.plist of the universal XCFramework and this can cause issues when submitting an app to apple.
This change should remove those lines from the universal framework.
It fixes https://github.com/facebook/react-native/issues/35863
## Changelog
[Internal] - Remove dSYM path from Info.plist
Reviewed By: cortinico
Differential Revision: D62603425
fbshipit-source-id: 038ec3d6b056a3d6f5585c8125d0430f56f11bb9
Summary:
When creating Hermes in CI, we build it for MacOS and Mac Catalyst as well.
The slices for these platforms requires symlinks to work properly.
The upload artifacts action on github, when applied to folders, follows the symlinks and copies the destination folder. The result is that Hermes for macOS and Catalyst does not work as expected.
This should fix https://github.com/facebook/react-native/issues/46213.
## Changelog:
[Internal] - Build Hermes in CI properly
Pull Request resolved: https://github.com/facebook/react-native/pull/46387
Test Plan: Tested already in 0.75
Reviewed By: robhogan
Differential Revision: D62355050
Pulled By: cipolleschi
fbshipit-source-id: 7abb85c8a2a88f13e06a49c6cb0caccbdad4551a
Summary:
We had CI on main failing consistently the past couple of days.
The problem is that the hermes pipeline is failing to create the iOS XCFramework with the error:
> unable to create a Mach-O from the binary at '/Users/runner/work/react-native/react-native/packages/react-native/sdks/hermes/destroot/Library/Frameworks/catalyst/hermes.framework/hermes'
The main cause is this upgrade of [upload-artifacts](https://github.com/actions/upload-artifact/issues/590) which breaks symlinks.
The solution is to bump the caches and downgrade the `upload-artifact` actions.
## Changelog:
[Internal] - Try to fix CI for Hermes
Pull Request resolved: https://github.com/facebook/react-native/pull/45908
Test Plan: GHA must be green
Reviewed By: cortinico
Differential Revision: D60828616
Pulled By: cipolleschi
fbshipit-source-id: 6976b86dd67e2fd9d806ebaa62f47e39dc44b30d
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45544
## This diff now does 5 things:
1. removes the old way we used `actions/setup-node` to manage the cache itself.
2. it creates a new `update-node-modules-cache` workflow, which is the only job that will update the node modules cache
3. it create a `yarn-install-with-cache` action that should be used install of directly calling `yarn install --non-interactive`. This will load a cache against a hash of `package.json`.
4. updated the cache reaper to aggressively remove everything but the latest `npm-{{ hash('package.json') }}`.
5. removed a `cache-setup`, which couldn't be used (we're using artefacts now).
## Why are we doing this:
The various `node-cache-` keys for platforms and on various branches accounts for a very large proportion of the cache (10-20%).
We don't frequently change these dependencies, and even when we do running `yarn install` after loading the cache will resolve any issues.
Limiting the cache to `main` and aggressively pruning older cache entries will clean up a lot of "small win" caching.
Changelog: [Internal]
Reviewed By: cortinico
Differential Revision: D59917944
fbshipit-source-id: 4be6f1959e8fde642a4f208f7d19aceba2c3262f
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45542
As we do have several version numbers for external actions all across the codebase,
here I'm aligning all of them to just use the majors.
I'm doing it only for GitHub first party actions as we trust them,
so minor/patch changes can safely be pulled in without code changes.
Changelog:
[Internal] [Changed] - Align github/* action versions on major
Reviewed By: cipolleschi, blakef
Differential Revision: D59959978
fbshipit-source-id: bb07ce0dfd74d9502a2ac0ea90a2b32f55d6d655
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45474
Our actions inputs are now a mixture of different casing.
I'm moving everything to be kebab-case
Changelog:
[Internal] [Changed] - Composite actions inputs should be kebab-case
Reviewed By: cipolleschi
Differential Revision: D59809181
fbshipit-source-id: af6d541c2b4f5fa162dcde412fb8808bae1ef2d3
Summary:
We don't need to specify a minor/patch for actions/upload-artifact.
We also have all sorts of different versions scattered around the codebase.
This aligns them to the latest sable in the 4.x series.
Changelog:
[Internal] [Changed] - actions/upload-artifact to v4.x
Reviewed By: cipolleschi
Differential Revision: D59811525
fbshipit-source-id: 7264db097bcb2ff34b3ace467996e8308c0f2034
Summary:
Factor out the build-hermes-macos job to reuse the code
## Changelog:
[Internal] - Factor out build hermes macos action
Pull Request resolved: https://github.com/facebook/react-native/pull/45371
Test Plan: GHA are green
Reviewed By: blakef
Differential Revision: D59627977
Pulled By: cipolleschi
fbshipit-source-id: 84226d8a2c036f816fa8ea949b467873a7eef37c