Pod lib lint subspecs in a concurrent manner (#2540)

Summary:
This PR splits the linting of the flipperkit pods into different subspecs. This will fasten the overall validation time. Before, all the pods were validated in a serialised fashion, but now its done in a parallel way.

This brings down the total validation time from 2+ hrs to ~ 25mins

## Changelog

- Split the validation of the FlipperKit pod into parallelised subspecs

Pull Request resolved: https://github.com/facebook/flipper/pull/2540

Test Plan: https://github.com/facebook/flipper/actions/runs/986790548

Reviewed By: passy

Differential Revision: D29489716

Pulled By: priteshrnandgaonkar

fbshipit-source-id: 55557c581d56ee01796ca64405cf78b647d2a68b
This commit is contained in:
Pritesh Nandgaonkar
2021-06-30 09:49:11 -07:00
committed by Facebook GitHub Bot
parent ef5a7d5bba
commit 3f04577548

View File

@@ -6,30 +6,233 @@ on:
- "xplat/**" - "xplat/**"
- "Flipper.podspec" - "Flipper.podspec"
- "FlipperKit.podspec" - "FlipperKit.podspec"
- "iOS-pod-lint.yml"
pull_request: pull_request:
paths: paths:
- "iOS/**" - "iOS/**"
- "xplat/**" - "xplat/**"
- "Flipper.podspec" - "Flipper.podspec"
- "FlipperKit.podspec" - "FlipperKit.podspec"
jobs: - "iOS-pod-lint.yml"
lint-flipperkit_pod:
runs-on: macos-latest
jobs:
lint-flipperkit_fbdefines_pod:
runs-on: macos-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Install Dependences - name: Install Dependences
run: pod repo update run: pod repo update
- name: Lint FlipperKit/FBDefines
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FBDefines --use-libraries --allow-warnings --verbose --skip-import-validation
- name: Lint FlipperKit lint-flipperkit_core_pod:
run: pod lib lint FlipperKit.podspec --use-libraries --allow-warnings --verbose --skip-import-validation --include-podspecs=Flipper.podspec runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/Core
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/Core --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_cppbridge_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/CppBridge
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/CppBridge --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_dynamic_convert_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FBCxxFollyDynamicConvert
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FBCxxFollyDynamicConvert --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_port_forwarding_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FKPortForwarding
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FKPortForwarding --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_layout_highlight_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FlipperKitHighlightOverlay
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FlipperKitHighlightOverlay --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_layout_text_searchable_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FlipperKitHighlightOverlay
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FlipperKitLayoutTextSearchable --include-podspecs=Flipper.podspec --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_layout_helpers_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FlipperKitLayoutHelpers
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FlipperKitLayoutHelpers --include-podspecs=Flipper.podspec --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_layout_ios_descriptors_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FlipperKitLayoutIOSDescriptors
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FlipperKitLayoutIOSDescriptors --include-podspecs=Flipper.podspec --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_layout_plugin_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FlipperKitLayoutPlugin
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FlipperKitLayoutPlugin --include-podspecs=Flipper.podspec --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_layout_ck_plugin_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FlipperKitLayoutComponentKitSupport
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FlipperKitLayoutComponentKitSupport --include-podspecs=Flipper.podspec --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_network_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FlipperKitNetworkPlugin
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FlipperKitNetworkPlugin --include-podspecs=Flipper.podspec --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_skiosnetwork_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/SKIOSNetworkPlugin
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/SKIOSNetworkPlugin --include-podspecs=Flipper.podspec --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_user_default_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FlipperKitUserDefaultsPlugin
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FlipperKitUserDefaultsPlugin --include-podspecs=Flipper.podspec --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_example_plugin_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FlipperKitExamplePlugin
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FlipperKitExamplePlugin --include-podspecs=Flipper.podspec --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipperkit_react_plugin_pod:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependences
run: pod repo update
- name: Lint FlipperKit/FlipperKitReactPlugin
uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint FlipperKit.podspec --subspec=FlipperKit/FlipperKitReactPlugin --include-podspecs=Flipper.podspec --use-libraries --allow-warnings --verbose --skip-import-validation
lint-flipper_pod: lint-flipper_pod:
runs-on: macos-latest runs-on: macos-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Install Dependences - name: Install Dependences
run: pod repo update run: pod repo update
- name: Lint Flipper - name: Lint Flipper
run: pod lib lint Flipper.podspec --use-libraries --allow-warnings --verbose uses: nick-invision/retry@v2.0.0
with:
timeout_minutes: 60
max_attempts: 3
command: pod lib lint Flipper.podspec --use-libraries --allow-warnings --verbose