From f3a17e568e864dd59e98278a2454cefcf7878851 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Thu, 12 Jan 2023 07:36:45 -0800 Subject: [PATCH] fix: use properly exclude parameter of matrix (#35794) Summary: Update the CircleCI configuration to use the proper `exclude` parameter of matrix rather then bootstrap a machine and then kill it. ## Changelog ## Changelog [Internal] - Use the `exclude` parameter of matrices to avoid spinning up unnecessary machines Pull Request resolved: https://github.com/facebook/react-native/pull/35794 Test Plan: The number of jobs on CircleCI should decrease. Reviewed By: dmytrorykun Differential Revision: D42475445 Pulled By: cipolleschi fbshipit-source-id: 3d733ac459a3bc9747440a62cb2caecb7a235fec --- .circleci/config.yml | 110 +++++++++++++++++++++++++++++++------------ 1 file changed, 81 insertions(+), 29 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 22f5f9c5081b6b..70fdbd180f920c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -862,35 +862,6 @@ jobs: - PROJECT_NAME: "iOSTemplateProject" - HERMES_WS_DIR: *hermes_workspace_root steps: - # Early exit in case of Release and WithFlipper. The two does not make sense together. - # Unfortunately, the `exclude` parameter of `matrix` does not work, so we have to do it manually. - - when: - condition: - and: - - equal: [ << parameters.flavor >>, "Release"] - - equal: [ << parameters.flipper >>, "WithFlipper" ] - steps: - - run: - command: circleci-agent step halt # this interrupts the job successfully. - # use_frameworks! does not works with Flipper enabled - - when: - condition: - and: - - equal: [ << parameters.use_frameworks >>, "StaticFrameworks"] - - equal: [ << parameters.flipper >>, "WithFlipper" ] - steps: - - run: - command: circleci-agent step halt # this interrupts the job successfully. - # use_frameworks! does not works with the New Architecture enabled - - when: - condition: - and: - - equal: [ << parameters.use_frameworks >>, "StaticFrameworks"] - - equal: [ << parameters.architecture >>, "NewArch" ] - steps: - - run: - command: circleci-agent step halt # this interrupts the job successfully. - # Valid configuration, we can continue - checkout_code_with_cache - run_yarn - attach_workspace: @@ -1656,6 +1627,87 @@ workflows: jsengine: ["Hermes", "JSC"] flipper: ["WithFlipper", "WithoutFlipper"] use_frameworks: [ "StaticLibraries", "StaticFrameworks" ] #TODO: make it works with DynamicFrameworks + exclude: + - architecture: "NewArch" + flavor: "Release" + jsengine: "Hermes" + flipper: "WithFlipper" + use_frameworks: "StaticLibraries" + - architecture: "NewArch" + flavor: "Release" + jsengine: "Hermes" + flipper: "WithFlipper" + use_frameworks: "StaticFrameworks" + - architecture: "NewArch" + flavor: "Release" + jsengine: "Hermes" + flipper: "WithoutFlipper" + use_frameworks: "StaticFrameworks" + - architecture: "NewArch" + flavor: "Release" + jsengine: "JSC" + flipper: "WithFlipper" + use_frameworks: "StaticLibraries" + - architecture: "NewArch" + flavor: "Release" + jsengine: "JSC" + flipper: "WithFlipper" + use_frameworks: "StaticFrameworks" + - architecture: "NewArch" + flavor: "Release" + jsengine: "JSC" + flipper: "WithoutFlipper" + use_frameworks: "StaticFrameworks" + - architecture: "OldArch" + flavor: "Release" + jsengine: "Hermes" + flipper: "WithFlipper" + use_frameworks: "StaticLibraries" + - architecture: "OldArch" + flavor: "Release" + jsengine: "Hermes" + flipper: "WithFlipper" + use_frameworks: "StaticFrameworks" + - architecture: "OldArch" + flavor: "Release" + jsengine: "JSC" + flipper: "WithFlipper" + use_frameworks: "StaticLibraries" + - architecture: "OldArch" + flavor: "Release" + jsengine: "JSC" + flipper: "WithFlipper" + use_frameworks: "StaticFrameworks" + - architecture: "NewArch" + flavor: "Debug" + jsengine: "Hermes" + flipper: "WithFlipper" + use_frameworks: "StaticFrameworks" + - architecture: "NewArch" + flavor: "Debug" + jsengine: "Hermes" + flipper: "WithoutFlipper" + use_frameworks: "StaticFrameworks" + - architecture: "NewArch" + flavor: "Debug" + jsengine: "JSC" + flipper: "WithFlipper" + use_frameworks: "StaticFrameworks" + - architecture: "NewArch" + flavor: "Debug" + jsengine: "JSC" + flipper: "WithoutFlipper" + use_frameworks: "StaticFrameworks" + - architecture: "OldArch" + flavor: "Debug" + jsengine: "Hermes" + flipper: "WithFlipper" + use_frameworks: "StaticFrameworks" + - architecture: "OldArch" + flavor: "Debug" + jsengine: "JSC" + flipper: "WithFlipper" + use_frameworks: "StaticFrameworks" - test_ios_rntester: requires: - build_hermes_macos