Commit Graph

75 Commits

Author SHA1 Message Date
Riccardo Cipolleschi 677d82d818 Disable E2E Tests on RNTester (#47903)
Summary:
E2E tests for Android RNTester in GHA are flaky and they prevent CI to be green on main.
Given that the Branch cut is happening on Monday and that I'll be away for a week, it's better to disable them.

I'm planning to work a bit on those today and more once I'm back

## Changelog:
[Internal] - Temporarily disable E2E tests for Android

Pull Request resolved: https://github.com/facebook/react-native/pull/47903

Test Plan: GHA

Reviewed By: javache

Differential Revision: D66359177

Pulled By: cipolleschi

fbshipit-source-id: a0064418af607953cf46445613796c18fb6e1389
2024-11-22 05:14:22 -08:00
Douglas Lowder f673759c83 feat: Add tvOS support to Hermes artifacts (#46865)
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
2024-10-16 03:39:58 -07:00
Riccardo Cipolleschi ce5358866f Disable e2e on PR (#46974)
Summary:
Commit https://github.com/facebook/react-native/commit/d4edbcffbf9e797d33bf06a8873c73874ec51bdc mistakingly enable iOS e2e on PRs
This change disable them again

## Changelog:
[Internal] - disable e2e in PRs

Pull Request resolved: https://github.com/facebook/react-native/pull/46974

Test Plan: GHA

Reviewed By: cortinico

Differential Revision: D64239005

Pulled By: cipolleschi

fbshipit-source-id: 5b3655d1f8ebb07fd552f656fee0e8e3f255301a
2024-10-11 06:40:40 -07:00
Riccardo Cipolleschi d4edbcffbf Move E2E tests to larger machines to see if flakyness decreases (#46960)
Summary:
This change move E2E tests to larger mac machines to see if we can reduce the flakyness.
Most of the time the flakyness is due to slowness in connecting to the simulator or slowness in Metro to provide the bundle to RNTester when we run the tests in Debug.
More power should speed-up those processes.

E2E tests took < 30 min in this diff
on Main, they took > 120 min

## Changelog:
[Internal] - Move the E2E tests to bigger machines

Pull Request resolved: https://github.com/facebook/react-native/pull/46960

Test Plan: GHA

Reviewed By: blakef

Differential Revision: D64237659

Pulled By: cipolleschi

fbshipit-source-id: c2458413c8de70c07fae8f2b5f202371c6293815
2024-10-11 05:10:10 -07:00
Riccardo Cipolleschi 94b7793843 Run Maestro tests also in debug mode (#46573)
Summary:
This change runs Maestro tests also in Debug mode, by starting Metro in background.

## Changelog:
[Internal] - Add E2E tests in Debug mode too

Pull Request resolved: https://github.com/facebook/react-native/pull/46573

Test Plan:
GHA must be green.
Successful run: https://github.com/facebook/react-native/actions/runs/11033322135?pr=46573

Reviewed By: cortinico

Differential Revision: D63452169

Pulled By: cipolleschi

fbshipit-source-id: e04b87f6a3e7aca8519dc2cb37c982dff3c20100
2024-09-26 06:01:28 -07:00
Riccardo Cipolleschi 038e6eda6d Fix the trigger e2e on comment workflow (#46653)
Summary:
This change fixes the workflow by using the right URL. I also added some logging for debugging.

## Changelog:
[Internal] - Fix Trigger E2E tests workflow

Pull Request resolved: https://github.com/facebook/react-native/pull/46653

Test Plan: Tested the script locally and verified that it triggers the workflow.

Reviewed By: cortinico

Differential Revision: D63452098

Pulled By: cipolleschi

fbshipit-source-id: f44956071edb68046ed1cb74e286e8edbe0eb23a
2024-09-26 03:49:09 -07:00
Riccardo Cipolleschi 0d2248557b Configure E2E test to run on comments (#46572)
Summary:
This change configure the Test All job to enable the E2E tests with an input parameter.
Then it adds another workflow that is triggered on PRs when someone posts the "/test-e2e" comment.

## Changelog:
[Internal] - Let users run E2E tests on a specific PR comment

Pull Request resolved: https://github.com/facebook/react-native/pull/46572

Test Plan: This kind of things can only be tested once the PR lands, as workflows that are triggered by comments runs only from the main branch.

Reviewed By: cortinico

Differential Revision: D63021786

Pulled By: cipolleschi

fbshipit-source-id: 95b271f6de658ca208c773429fedef2a36417752
2024-09-19 05:34:53 -07:00
Riccardo Cipolleschi 274f5bfe6c Disable concurrency on main (#46435)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46435

On main, we want to run CI as fast as possible to catch failures as soon as possible.
Currently, if two commits arrives on main (say commit A and commi B) CI will run on commit B only when it is finished on commit A.
Instead, we would like for CI to run in parallel.

## Changelog
[Internal] - Run CI in parallel on main

Reviewed By: cortinico

Differential Revision: D62496842

fbshipit-source-id: 03dc910deab42af98d92ea8e8e5b90049940dba1
2024-09-11 07:08:40 -07:00
Soe Lynn b93c2b2412 Bump React Native CI to min iOS 15.1 (#46135)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/46135

Changelog:
[iOS] - Bump iOS min version for CI

Reviewed By: cipolleschi

Differential Revision: D61604034

fbshipit-source-id: 5d2b0001b6437e62c64d821e36a4183096e8ef74
2024-08-21 12:11:58 -07:00
Riccardo Cipolleschi eb2d9852c7 Fix E2E tests on Template (#45974)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45974

This change fixes the E2E tests on the template on main.

There were two issues:
1. we were forcing the project on the 0.75 branch. We now use the current branch name
2. we were replacing all the versions for the dependencies that starts with `react-native` to the monorepo version. The problem is that also `react-native-community` packages starts with `react-native`. We now changes the versions if the dependency name starts with `react-native/`.

## Changelog:
[Internal] - Fix E2E tests on main

Reviewed By: cortinico

Differential Revision: D61122154

fbshipit-source-id: 07210fc9f63e99eac46894f13c7ca5359e186e6c
2024-08-13 05:05:56 -07:00
Oskar Kwaśniewski 58a8fa69b4 ci: add xcbeautify for xcodebuild actions (#45957)
Summary:
This PR adds `xcbeautify` for xcodebuild actions.

Installing `xcodebuild` is not required as its included in every macos runner image: https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md#tools

## Changelog:

[INTERNAL] [ADDED] - add xcbeautify for xcodebuild actions

Pull Request resolved: https://github.com/facebook/react-native/pull/45957

Test Plan: CI Green

Reviewed By: cortinico

Differential Revision: D61012286

Pulled By: cipolleschi

fbshipit-source-id: d0ef3df18963c0ebfc1c856816a63b1cc0259ba5
2024-08-09 06:12:15 -07:00
Nicola Corti 2ca01b4d04 Revert "Remove unnecessary git config --global --add safe.directory" (#45929)
Summary:
This reverts commit 9d9a8d2df6.

## Changelog:

[INTERNAL] - This reverts commit 9d9a8d2df6.

Pull Request resolved: https://github.com/facebook/react-native/pull/45929

Test Plan: CI

Reviewed By: blakef

Differential Revision: D60901502

Pulled By: cortinico

fbshipit-source-id: 2b7a7908a29f031c1f229907aa899a8a6960da4b
2024-08-07 06:39:31 -07:00
Riccardo Cipolleschi 24e7f7d256 Try to restore caches for Hermes (#45908)
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
2024-08-06 06:41:35 -07:00
Riccardo Cipolleschi c7d238da13 Do not cancel jobs on main when new commits are pushed
Summary:
Last month, during the migration to GHA, we decided to reimplement the same behavior we had in CCI: when a new commit comes in, we stop executing tests on the previous one.

This behavior is great to save money, but on main it has the side effect that it makes it hard to detect when the ci was broken.

\With this change, we want to disable this behvior on main while keeping it in PRs.

After this change, when a new commit arrives on main, the previous jobs will not be interrupted

## Changelog
[Internal] - Do not cancel jobs on main when new commits are pushed.

Reviewed By: cortinico, blakef

Differential Revision: D60822657

fbshipit-source-id: 38561438f2e2850a94220d732cd73a09d04e8b81
2024-08-06 06:37:58 -07:00
Riccardo Cipolleschi e92ae77204 Disable E2E Template tests on main
Summary:
With the React revert from 19 to 18.3.1 of 0.75 the template is not compatible with main anymore.

As a quick solution, we are disabling the e2e tests running on main.

## Changelog
[Internal] - disable  E2E template tests

Reviewed By: cortinico

Differential Revision: D60387687

fbshipit-source-id: 74d4133477bcfdc8ba5909b46d9180ac372ec6bb
2024-07-29 08:10:34 -07:00
Riccardo Cipolleschi 44d38c9d4d Run e2e tests only on main and on stable branches (#45706)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45706

## Context
Running manual tests when preparing a release, it's time consuming.
We have to do the cherry picks, wait for CI to finish, and then manually test 8 configurations.

Maestro is a tool that allow us to run E2E tests automatically, and we can wire it to CI.

## Change
To avoid flakyness and costs, let's run E2E tests only on main and on stable branches

Changelog:
[Internal] - Exploration to integrate maestro

Reviewed By: blakef

Differential Revision: D60283204

fbshipit-source-id: 806cb8905cb269f18785158dcc5777ef10e0ef44
2024-07-26 09:57:46 -07:00
Riccardo Cipolleschi c595e3da74 Add job to run maestro tests using the Android template (#45710)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45710

## Context
Running manual tests when preparing a release, it's time consuming.
We have to do the cherry picks, wait for CI to finish, and then manually test 8 configurations.

Maestro is a tool that allow us to run E2E tests automatically, and we can wire it to CI.

## Change

Add job to create a new Android app from the template and run maestro test on it

Changelog:
[Internal] - Exploration to integrate maestro

Reviewed By: cortinico

Differential Revision: D60282836

fbshipit-source-id: 0c3b4c1bbacfd6c8695f987c86b7e615a3cef026
2024-07-26 09:57:46 -07:00
Riccardo Cipolleschi 806e5ffadc Add job to run maestro tests using the iOS template (#45703)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45703

## Context
Running manual tests when preparing a release, it's time consuming.
We have to do the cherry picks, wait for CI to finish, and then manually test 8 configurations.

Maestro is a tool that allow us to run E2E tests automatically, and we can wire it to CI.

## Change

Add job to create a new iOS app from the template and run maestro test on it

Changelog:
[Internal] - Exploration to integrate maestro

Reviewed By: blakef

Differential Revision: D60282811

fbshipit-source-id: 2a1dcb1de09795bd0323357455e98a7fa379a2e7
2024-07-26 09:57:46 -07:00
Riccardo Cipolleschi 4adc1e3b15 Connect Android RNTester to Maestro (#45709)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45709

## Context
Running manual tests when preparing a release, it's time consuming.
We have to do the cherry picks, wait for CI to finish, and then manually test 8 configurations.

Maestro is a tool that allow us to run E2E tests automatically, and we can wire it to CI.

## Change

Connect RNTester Android to Maestro action

Changelog:
[Internal] - Exploration to integrate maestro

Reviewed By: blakef

Differential Revision: D60282769

fbshipit-source-id: 2a20f1cb249fc5c43b0579c3309efd60369a1da6
2024-07-26 09:57:46 -07:00
Riccardo Cipolleschi b9764c0511 Connect maestro action to RNTester (#45705)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45705

## Context
Running manual tests when preparing a release, it's time consuming.
We have to do the cherry picks, wait for CI to finish, and then manually test 8 configurations.

Maestro is a tool that allow us to run E2E tests automatically, and we can wire it to CI.

## Change

Wire RNTester to the Maestro Action

Changelog:
[Internal] - Exploration to integrate maestro

Reviewed By: blakef

Differential Revision: D60282689

fbshipit-source-id: 51c624c2acf7a27ed5527e7453d9a04678df6c66
2024-07-26 09:57:46 -07:00
Nicola Corti 9d9a8d2df6 Remove unnecessary git config --global --add safe.directory (#45663)
Summary:
`git config --global --add safe.directory` is no longer necessary because is done inside the Docker container.

## Changelog:

[INTERNAL] - Remove unnecessary git config --global --add safe.directory

Pull Request resolved: https://github.com/facebook/react-native/pull/45663

Test Plan: CI

Reviewed By: blakef

Differential Revision: D60229662

Pulled By: cortinico

fbshipit-source-id: aa817ff27adaab3e3105ab22af74a871b377295b
2024-07-25 04:13:16 -07:00
Riccardo Cipolleschi 5bf1a77a0b Cancel test-all job is another commits get pushed in the same branch (#45568)
Summary:
CircleCI was automatically cancelling an old run if a new commit was pushed on the branch.
GitHub does not have the same behavior enabled by default.

Keep running jobs in a pipeline when there is a new commit is usually wasteful of resources and cost money we can save.

## Changelog:
[Internal] - Cancel old jobs if a new commit is pushed

Pull Request resolved: https://github.com/facebook/react-native/pull/45568

Test Plan: Tested on GHA on this PR

Reviewed By: blakef

Differential Revision: D60035940

Pulled By: cipolleschi

fbshipit-source-id: 88b4dfc8bdd3eded6489a87db285e9544d3a1bcf
2024-07-22 03:51:33 -07:00
Blake Friedman 4410899ec7 Only cache node_modules on main (#45544)
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
2024-07-19 13:04:07 -07:00
Nicola Corti e50e554039 Move helloworld to build from artifacts on Android (#45517)
Summary:
This moves the `helloworld` app to build from the artifacts produced by build_npm_package so that we don't rebuild ReactNative Android from source 8 times.
It reduces build time of such jobs from 14mins to 4mins, resulting in 80mins of build time for every test_all run.

## Changelog:

[INTERNAL] - Move helloworld to build from artifacts on Android

Pull Request resolved: https://github.com/facebook/react-native/pull/45517

Test Plan: CI

Reviewed By: blakef

Differential Revision: D59957613

Pulled By: cortinico

fbshipit-source-id: b6c4adcf804af6c8d2661cf56549d037e09aa2c1
2024-07-19 08:55:19 -07:00
Nicola Corti 818dd92a4a Align github/* action versions on major (#45542)
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
2024-07-19 05:49:03 -07:00
Riccardo Cipolleschi 32943263d0 Factor out build npm package (#45493)
Summary:
Factor out the Build NPM package job in a separate action for code reuse

## Changelog:
[Internal] - Factor out the Build NPM package job in a separate action for code reuse

Pull Request resolved: https://github.com/facebook/react-native/pull/45493

Test Plan: GHA are green

Reviewed By: robhogan

Differential Revision: D59858572

Pulled By: cipolleschi

fbshipit-source-id: 561a215ba5812352034157aa254999db56fcd31e
2024-07-18 07:05:24 -07:00
Nicola Corti 6e34283ab3 Remove report-app-size (#45483)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45483

We don't really use this functionality and is getting harder to migrate to GHA,
hence I'm removing it.

Changelog:
[Internal] [Changed] - Remove report-app-size

Reviewed By: cipolleschi

Differential Revision: D59822862

fbshipit-source-id: 2d082454aea3b3c5863bd34556a23c2fc847f841
2024-07-18 04:34:32 -07:00
Riccardo Cipolleschi dbbb4069b9 Fix prepare hermes workspace warnings in GHA (#45494)
Summary:
Some of the previous commits changed the names of the parameters on one side and not in another, and GHA is emitting some warnings. This change should fix them

## Changelog:
[Internal] - Fix GHA CI warnings

Pull Request resolved: https://github.com/facebook/react-native/pull/45494

Test Plan:
| BEFORE | AFTER |
| --- | --- |
| <img width="1507" alt="Screenshot 2024-07-17 at 14 20 54" src="https://github.com/user-attachments/assets/6703e554-ad74-4fd6-96ba-18baf5e71a52"> | <img width="1718" alt="Screenshot 2024-07-17 at 14 23 31" src="https://github.com/user-attachments/assets/8bb7bd4a-5bd4-417f-9c8a-e7e8db4ba412"> |

Reviewed By: robhogan

Differential Revision: D59857004

Pulled By: cipolleschi

fbshipit-source-id: e8c5050682aba4952e3a2b0c7a660155813d19f1
2024-07-17 08:08:11 -07:00
Nicola Corti c1b4133a58 Composite actions inputs should be kebab-case (#45474)
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
2024-07-17 03:48:36 -07:00
Nicola Corti 8d0cbbf0e6 Make build_android publish to the staging repositories (#45468)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45468

This should greatly reduce the time spent on build_npm_package
because we're moving all the publishing logic to build_android.

I need to do a bit more testing with nightlies to make sure that everything is published correctly.

Changelog:
[Internal] [Changed] - Make build_android publish to the stating repositories

Reviewed By: cipolleschi

Differential Revision: D59804015

fbshipit-source-id: be3f0b6e16f5fdbf760ec7a5e16c8e258e06dd28
2024-07-16 13:58:43 -07:00
Nicola Corti 16b9b55cf1 actions/upload-artifact to v4.x
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
2024-07-16 10:01:21 -07:00
Riccardo Cipolleschi 3d5daa12d4 Factor out build-android (#45455)
Summary:
This change factors out build-android job so we can reuse it

## Changelog:
[Internal] - Factor out the build-android job for code reuse

Pull Request resolved: https://github.com/facebook/react-native/pull/45455

Test Plan: GHA are green

Reviewed By: blakef

Differential Revision: D59802116

Pulled By: cipolleschi

fbshipit-source-id: 12ece8004da3bfd1f275b4af8e9822d4b0ccc0f0
2024-07-16 03:34:34 -07:00
Riccardo Cipolleschi d2773f0c19 Factor out build-hermesc-windows in separate action (#45432)
Summary:
This change factors out the build hermesc windows job into a separate action to reuse the code in different jobs

## Changelog:
[Internal] - Factor out build hermesc windows for code reuse

Pull Request resolved: https://github.com/facebook/react-native/pull/45432

Test Plan: GHA are green

Reviewed By: blakef

Differential Revision: D59748955

Pulled By: cipolleschi

fbshipit-source-id: bb6b96c93ec7ba6af1a210511ec672907f237b45
2024-07-15 05:50:21 -07:00
Riccardo Cipolleschi 1568a29144 Factor out build hermesc for Linux (#45402)
Summary:
This change factors out the Build HermesC for Linux job so that we can reuse the code in various workflows

## Changelog:
[Internal] - Factor out build-hermesc-linux for code reuse

Pull Request resolved: https://github.com/facebook/react-native/pull/45402

Test Plan: GHA are green

Reviewed By: cortinico

Differential Revision: D59673895

Pulled By: cipolleschi

fbshipit-source-id: f5c680d523866442d25317e880b4803ac89c3741
2024-07-12 03:21:39 -07:00
Riccardo Cipolleschi 7b424f090a Factor out build hermes Macos (#45371)
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
2024-07-11 03:50:15 -07:00
Riccardo Cipolleschi 0fd4a9447e Factor out hermes slice apple (#45359)
Summary:
Factor out build-apple-slices-hermes to a seprate action to reuse code

## Changelog:
[Internal] - Refactor the CI to reuse code

Pull Request resolved: https://github.com/facebook/react-native/pull/45359

Test Plan: GHA are green

Reviewed By: cortinico

Differential Revision: D59575467

Pulled By: cipolleschi

fbshipit-source-id: 5d253f3dd523cb70b768c62db10fb7ff39fbd49f
2024-07-10 06:38:49 -07:00
Riccardo Cipolleschi b4b6614034 Factor out build hermesc apple (#45346)
Summary:
Factor out the action to build hermesc for apple platform so we can reuse it across jobs

## Changelog:
[Internal] - Factor out hermesC apple to reuse code

Pull Request resolved: https://github.com/facebook/react-native/pull/45346

Test Plan: GHA are green

Reviewed By: cortinico

Differential Revision: D59521564

Pulled By: cipolleschi

fbshipit-source-id: c99966e314b3d418d1d83d653c0be68b2931b03b
2024-07-10 01:06:39 -07:00
Nicola Corti b34b694f8e Move all custom actions to kebab-case (#45286)
Summary:
We do have a mixture of casing in the custom GH actions in our repo.
This aligns them all to be `kebab-case`

## Changelog:

[INTERNAL] - Aling all custom actions to kebab-case

Pull Request resolved: https://github.com/facebook/react-native/pull/45286

Test Plan: CI

Reviewed By: blakef

Differential Revision: D59374046

Pulled By: cortinico

fbshipit-source-id: 030a9323e501e375585e90f10a3b29c3bb671b28
2024-07-04 07:57:03 -07:00
Nicola Corti c0977c39b9 Migrate analyse_code to GHA (#45247)
Summary:
This migrates `analyse_code` to GHA into a single job called `lint`.

## Changelog:

[INTERNAL] - Migrate analyse_code to GHA

Pull Request resolved: https://github.com/facebook/react-native/pull/45247

Test Plan: CI

Reviewed By: NickGerleman

Differential Revision: D59283393

Pulled By: cortinico

fbshipit-source-id: dcdc4828a551062b3706e6450614b8c94e1a7e81
2024-07-03 05:49:47 -07:00
Nicola Corti c25246044f Migrate test_js to GHA (#45246)
Summary:
This migrates the `test_js` workflow to GHA

## Changelog:

[INTERNAL] - Migrate test_js to GHA

Pull Request resolved: https://github.com/facebook/react-native/pull/45246

Test Plan: Will wait for CI

Reviewed By: javache

Differential Revision: D59270333

Pulled By: cortinico

fbshipit-source-id: e77eb9819e0819638c51e61b1e477ac04680a2f4
2024-07-02 05:17:33 -07:00
Nicola Corti 258ea84f46 Further refine the Gradle caching logic. (#45233)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45233

We want the Gradle cache to be written only on main/-stable branches run, and only for jobs with `cache-read-only` == false (i.e. `build_android`).
This changes implements it.

Changelog:
[Internal] [Changed] - Further refine the Gradle caching logic.

Reviewed By: blakef

Differential Revision: D59225944

fbshipit-source-id: b6c3a5d4d0d399d6fe42287976925c43f3f12eb7
2024-07-02 04:22:43 -07:00
Nicola Corti c911c89728 Setup git config --global --add safe.directory '*' when running jobs inside Docker (#45231)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45231

Following up to cipolleschi's work, it turns out that me setting this command inside
the docker file for React Android is unneffective:
https://github.com/react-native-community/docker-android/pull/228

The reason is that the user executing is different (1001 for the Dockerfile, while GHA executes as root 1000).
So we need to set this, otherwise the nightlies will be invoked with the `-TEMP` prefix:

Changelog:
[Internal] [Changed] - Setup `git config --global --add safe.directory '*'` when running jobs inside Docker

Reviewed By: blakef

Differential Revision: D59223862

fbshipit-source-id: 26674fc8cdaebf6687407072cc4e4f5c38246845
2024-07-01 06:28:51 -07:00
Nicola Corti e8d3ad7216 Let build_android produce a signed maven-local.zip archive (#45161)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45161

This is part of a bigger refactoring of the Android pipelines.
As `build_android` is already building everything, let's save the maven-local
so it can be reused by other jobs (test_android_helloworld and build_npm_package).

Changelog:
[Internal] [Changed] - Let build_android produce a signed maven-local.zip archive

Reviewed By: cipolleschi, blakef

Differential Revision: D59002893

fbshipit-source-id: db03946c975b2ce91dae0c4011981b2fe9dd6113
2024-06-27 09:29:22 -07:00
Riccardo Cipolleschi 2adb389fac Disable unit tests for flakyness in CircleCI (#45133)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45133

Recently, CircleCI has failed pretty often due to these tests.
The reason is that we migrated these jobs to M1 machines, as circleCI is deprecating intel ones, and on these machines the simulators tend to freeze. Hence, every often we get stuck when running the tests. :(

We are going to move to GHA, so that should not be a big issue.

## Changelog:
[Internal] - Disable unit tests in CircleCI to improve CI robustness

Reviewed By: cortinico

Differential Revision: D58948614

fbshipit-source-id: 5420bdf0fda325779a4e287e7b00c623de822ccb
2024-06-27 09:27:24 -07:00
Riccardo Cipolleschi cf8d3f8007 Port CI improvements from Release branch to main (#45175)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45175

This change ports the CI improvements we made on stable branch to main.

## Changelog:
[Internal] - Port back to main improvements we made in GHA

Reviewed By: cortinico

Differential Revision: D59053873

fbshipit-source-id: 73eb7e33b9bbdc5d8c3a9294f487ad969b144bf3
2024-06-27 04:11:44 -07:00
Alex Hunt 5f60ad65ca Rename set-rn-version script, mark as deprecated (#45184)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45184

This is a follow-up to D59055522.

> NOTE:This diff will be followed up by a merge of the set-rn-version script into set-version. (I had considered a rename to version-rn-artifacts, intentionally keeping this script separate and distinct from a future [lerna version + this script] setup — however the current UX and confusion with this naming would be too confusing. It can move into a util 👍🏻.)

- Rename `set-rn-version` to `set-rn-artifacts-version` (more accurate).
- Mark this script as deprecated.
    - For now, there are too many references to this script in CI test jobs to refactor away this entry point, so I am avoiding this — these should later be standardised to `set-version`.

Changelog: [Internal]

Reviewed By: christophpurrer

Differential Revision: D59058085

fbshipit-source-id: 4123ac73b5c7a2e07a1d1b6da61e0ad94fc31f84
2024-06-26 10:14:12 -07:00
Nicola Corti 88a9b6e89f Only build_android should write to the Gradle Cache (#45160)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/45160

This should optimize the Gradle cache, so that only `build_android` which
effectively builds everything Android related, should be allowed to write there.

More info on this strategy here:
https://github.com/gradle/actions/blob/main/docs/setup-gradle.md

Changelog:
[Internal] [Changed] - Only build_android should write to the Gradle Cache

Reviewed By: cipolleschi

Differential Revision: D59002323

fbshipit-source-id: 31b815747efdf93bfc7baf97799e287c8dcd7f02
2024-06-26 03:40:50 -07:00
Riccardo Cipolleschi 42735717b5 Fix Cache checks in build_hermes_macos (#45127)
Summary:
The cache checks in GHA were performed against bool values, while the actual values are strings.
So the checks were always failing and all the steps were executed, even when not necessary.

The reason why it was failing is because, with this setup, when a cache is hit, some steps were skipped in previous jobs, making following jobs trying to execute code on not-existing files.

## Changelog:
[Internal] - Fix cache for build_hermes_macos

Pull Request resolved: https://github.com/facebook/react-native/pull/45127

Test Plan: GHA are green again

Reviewed By: blakef

Differential Revision: D58947838

Pulled By: cipolleschi

fbshipit-source-id: 8dba216e72a3034fd4c1484418d37bfb78cf314d
2024-06-24 05:54:30 -07:00
Nicola Corti 15909fab95 packages/react-native-gradle-plugin/ -> packages/gradle-plugin/ (#44832)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44832

I'm renaming this folder as now we have 2 gradle plugins + we currently have
`package/react-native-gradle-plugin/react-native-gradle-plugin/` which is confusing so we can just call this folder `packages/gradle-plugin/`
to be consistent with the NPM package name

Changelog:
[Internal] [Changed] - packages/react-native-gradle-plugin/ -> packages/gradle-plugin/

Reviewed By: blakef

Differential Revision: D58284883

fbshipit-source-id: 5a7bb40a5d80f6fbab4ffb29e44107453f1013ec
2024-06-21 01:08:00 -07:00
Riccardo Cipolleschi 75451d5b89 Fix yml syntax on main (#45084)
Summary:
While landing a change on GH, I forget to remove one line that does not belong to an action

## Changelog:
[Internal] - CI fix

Pull Request resolved: https://github.com/facebook/react-native/pull/45084

Test Plan: GHA are green

Reviewed By: blakef

Differential Revision: D58817768

Pulled By: cipolleschi

fbshipit-source-id: 5fc02d2d2a19dd3fe2202c93d0d1873e5dda4b82
2024-06-20 07:49:52 -07:00