diff --git a/.github/workflows/await-fast-ci.yaml b/.github/workflows/await-fast-ci.yaml new file mode 100644 index 00000000000000..3d57e415431fcd --- /dev/null +++ b/.github/workflows/await-fast-ci.yaml @@ -0,0 +1,34 @@ +# Copyright (c) 2022 Project CHIP Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#gh run list -R project-chip/connectedhomeip -c ${{ github.event.pull_request.head.sha }} -L 500 + +name: Wait For Fast CI to Pass + +on: + workflow_call: + +jobs: + wait-for-fast-ci: + name: Wait For Fast CI to Pass + runs-on: ubuntu-latest + env: + GH_TOKEN: ${{ github.token }} + steps: + - uses: actions/checkout@v4 + - name: Review Contributor License Agreement Status + run: python scripts/helpers/poll_quick_ci.py ${{ github.event.number }} license/cla + - name: Review Summary Status + run: python scripts/helpers/poll_quick_ci.py ${{ github.event.number }} Summary + - name: Review Restyled Status + run: python scripts/helpers/poll_quick_ci.py ${{ github.event.number }} restyled diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c1073d90678ed2..7b086905eb3a79 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -35,8 +35,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + build_linux_gcc_debug: name: Build on Linux (gcc_debug) + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' @@ -133,6 +138,7 @@ jobs: build_linux: name: Build on Linux (fake, gcc_release, clang, simulated) + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' @@ -276,6 +282,7 @@ jobs: build_linux_python_lib: name: Build on Linux (python_lib) + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' @@ -337,6 +344,7 @@ jobs: build_linux_python_lighting_device: name: Build on Linux (python lighting-app) + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' @@ -371,6 +379,7 @@ jobs: build_darwin: name: Build on Darwin (clang, python_lib, simulated) + needs: await-fast-ci runs-on: macos-13 if: github.actor != 'restyled-io[bot]' @@ -446,6 +455,7 @@ jobs: build_linux_gcc_coverage: name: Build on Linux (coverage) + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/chef.yaml b/.github/workflows/chef.yaml index b3d3f7f3a90f7c..adb7be48e86365 100644 --- a/.github/workflows/chef.yaml +++ b/.github/workflows/chef.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + chef_linux: name: Chef - Linux CI Examples + needs await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' @@ -52,6 +57,7 @@ jobs: chef_esp32: name: Chef - ESP32 CI Examples + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/cirque.yaml b/.github/workflows/cirque.yaml index b3e2f9d1086ee8..dba055ce51b04a 100644 --- a/.github/workflows/cirque.yaml +++ b/.github/workflows/cirque.yaml @@ -30,8 +30,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + cirque: name: Cirque + needs: await-fast-ci env: GITHUB_CACHE_PATH: /tmp/cirque-cache diff --git a/.github/workflows/darwin-tests.yaml b/.github/workflows/darwin-tests.yaml index a916250572bb6e..ed06d7f7885e96 100644 --- a/.github/workflows/darwin-tests.yaml +++ b/.github/workflows/darwin-tests.yaml @@ -32,8 +32,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + test_suites_chip_tool_darwin: name: Test Suites - Darwin + needs: await-fast-ci strategy: matrix: diff --git a/.github/workflows/darwin.yaml b/.github/workflows/darwin.yaml index ba9c0f1d9f02c3..6837666fe51e5c 100644 --- a/.github/workflows/darwin.yaml +++ b/.github/workflows/darwin.yaml @@ -33,8 +33,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + framework: name: Build framework + needs: await-fast-ci if: github.actor != 'restyled-io[bot]' runs-on: macos-13 strategy: diff --git a/.github/workflows/example-tv-casting-darwin.yaml b/.github/workflows/example-tv-casting-darwin.yaml index d9d9ef8f37cee9..a9208109d03dcb 100644 --- a/.github/workflows/example-tv-casting-darwin.yaml +++ b/.github/workflows/example-tv-casting-darwin.yaml @@ -33,8 +33,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + tv-casting-bridge: name: Build TV Casting Bridge example + needs: await-fast-ci if: github.actor != 'restyled-io[bot]' runs-on: macos-13 steps: diff --git a/.github/workflows/examples-ameba.yaml b/.github/workflows/examples-ameba.yaml index 7c098ea57f2403..cd9cea5f8f377e 100644 --- a/.github/workflows/examples-ameba.yaml +++ b/.github/workflows/examples-ameba.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + ameba: name: Ameba + needs: await-fast-ci env: BUILD_TYPE: ameba diff --git a/.github/workflows/examples-asr.yaml b/.github/workflows/examples-asr.yaml index f238d10a5cf6b3..67f6d6da1536e9 100644 --- a/.github/workflows/examples-asr.yaml +++ b/.github/workflows/examples-asr.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + asr: name: ASR + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/examples-bouffalolab.yaml b/.github/workflows/examples-bouffalolab.yaml index 12b033b791f900..373cacac182db0 100644 --- a/.github/workflows/examples-bouffalolab.yaml +++ b/.github/workflows/examples-bouffalolab.yaml @@ -30,8 +30,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + bouffalolab: name: Bouffalo Lab + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/examples-cc13xx_26xx.yaml b/.github/workflows/examples-cc13xx_26xx.yaml index d462d9f2725bbb..68ff51761794ea 100644 --- a/.github/workflows/examples-cc13xx_26xx.yaml +++ b/.github/workflows/examples-cc13xx_26xx.yaml @@ -31,8 +31,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + cc13xx_26xx: name: cc13xx_26xx + needs: await-fast-ci env: BUILD_TYPE: gn_cc13xx_26xx diff --git a/.github/workflows/examples-cc32xx.yaml b/.github/workflows/examples-cc32xx.yaml index 564cd34dddd5b2..1faf32a9320a9b 100644 --- a/.github/workflows/examples-cc32xx.yaml +++ b/.github/workflows/examples-cc32xx.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + cc32xx: name: cc32xx + needs: await-fast-ci env: BUILD_TYPE: gn_cc32xx diff --git a/.github/workflows/examples-efr32.yaml b/.github/workflows/examples-efr32.yaml index eaaedd226e778b..1428f2badb2c80 100644 --- a/.github/workflows/examples-efr32.yaml +++ b/.github/workflows/examples-efr32.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + efr32: name: EFR32 + needs: await-fast-ci env: SILABS_BOARD: BRD4187C diff --git a/.github/workflows/examples-esp32.yaml b/.github/workflows/examples-esp32.yaml index 92415c0ce96930..29274e16ce42e1 100644 --- a/.github/workflows/examples-esp32.yaml +++ b/.github/workflows/examples-esp32.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + esp32: name: ESP32 + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' @@ -121,6 +126,7 @@ jobs: esp32_1: name: ESP32_1 + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/examples-infineon.yaml b/.github/workflows/examples-infineon.yaml index 290e67273f9bd3..73d7b881bb86ee 100644 --- a/.github/workflows/examples-infineon.yaml +++ b/.github/workflows/examples-infineon.yaml @@ -30,8 +30,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + infineon: name: Infineon examples building + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/examples-linux-arm.yaml b/.github/workflows/examples-linux-arm.yaml index 4bf103ddae4542..884ba032a27c41 100644 --- a/.github/workflows/examples-linux-arm.yaml +++ b/.github/workflows/examples-linux-arm.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + arm_crosscompile: name: Linux ARM Cross compile + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/examples-linux-imx.yaml b/.github/workflows/examples-linux-imx.yaml index ab32eef0801353..ae4cd6825951a0 100644 --- a/.github/workflows/examples-linux-imx.yaml +++ b/.github/workflows/examples-linux-imx.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + imx: name: Linux i.MX Build + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/examples-linux-standalone.yaml b/.github/workflows/examples-linux-standalone.yaml index eb97e63235e714..536adb1187e1ea 100644 --- a/.github/workflows/examples-linux-standalone.yaml +++ b/.github/workflows/examples-linux-standalone.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + linux_standalone: name: Linux Standalone + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/examples-linux-tv-casting-app.yaml b/.github/workflows/examples-linux-tv-casting-app.yaml index 2797712bffa816..8076ff5d35a5fb 100644 --- a/.github/workflows/examples-linux-tv-casting-app.yaml +++ b/.github/workflows/examples-linux-tv-casting-app.yaml @@ -29,8 +29,13 @@ concurrency: cancel-in-progress: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + Linux-test: name: Linux Test + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/examples-mbed.yaml b/.github/workflows/examples-mbed.yaml index e74ad8afc7a600..4c80da26d65b5f 100644 --- a/.github/workflows/examples-mbed.yaml +++ b/.github/workflows/examples-mbed.yaml @@ -30,8 +30,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + mbedos: name: Mbed OS examples building + needs: await-fast-ci env: PLATFORM_NAME: mbed diff --git a/.github/workflows/examples-mw320.yaml b/.github/workflows/examples-mw320.yaml index 780543a70d1f11..ebd42690f53bdd 100644 --- a/.github/workflows/examples-mw320.yaml +++ b/.github/workflows/examples-mw320.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + mw320: name: MW320 + needs: await-fast-ci env: BUILD_TYPE: gn_mw320 diff --git a/.github/workflows/examples-nrfconnect.yaml b/.github/workflows/examples-nrfconnect.yaml index c8d997d5ca6631..024f8c66731e1d 100644 --- a/.github/workflows/examples-nrfconnect.yaml +++ b/.github/workflows/examples-nrfconnect.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + nrfconnect: name: nRF Connect SDK + needs: await-fast-ci env: BUILD_TYPE: nrfconnect diff --git a/.github/workflows/examples-nuttx.yaml b/.github/workflows/examples-nuttx.yaml index 5ffd19b1319ff5..61e2ce5e21a2ad 100644 --- a/.github/workflows/examples-nuttx.yaml +++ b/.github/workflows/examples-nuttx.yaml @@ -28,8 +28,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + nuttx: name: NuttX + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/examples-nxp.yaml b/.github/workflows/examples-nxp.yaml index 05d434b0a67792..891f9836cd2041 100644 --- a/.github/workflows/examples-nxp.yaml +++ b/.github/workflows/examples-nxp.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + k32w: name: K32W + needs: await-fast-ci env: BUILD_TYPE: gn_k32w diff --git a/.github/workflows/examples-openiotsdk.yaml b/.github/workflows/examples-openiotsdk.yaml index 2f878ea48e4540..30036e6ab1d5a5 100644 --- a/.github/workflows/examples-openiotsdk.yaml +++ b/.github/workflows/examples-openiotsdk.yaml @@ -30,8 +30,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + openiotsdk: name: Open IoT SDK examples building + needs: await-fast-ci env: TEST_NETWORK_NAME: OIStest diff --git a/.github/workflows/examples-qpg.yaml b/.github/workflows/examples-qpg.yaml index 2bb85ad4acbfac..b398b7e1e13956 100644 --- a/.github/workflows/examples-qpg.yaml +++ b/.github/workflows/examples-qpg.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + qpg: name: QPG + needs: await-fast-ci env: BUILD_TYPE: gn_qpg diff --git a/.github/workflows/examples-rw61x.yaml b/.github/workflows/examples-rw61x.yaml index eed41f209ed61d..a55de5f1168418 100644 --- a/.github/workflows/examples-rw61x.yaml +++ b/.github/workflows/examples-rw61x.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + rw61x: name: RW61X + needs: await-fast-ci env: BUILD_TYPE: gn_rw61x diff --git a/.github/workflows/examples-stm32.yaml b/.github/workflows/examples-stm32.yaml index 809861cdee179e..db5273c94f8119 100644 --- a/.github/workflows/examples-stm32.yaml +++ b/.github/workflows/examples-stm32.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + stm32: name: stm32 + needs: await-fast-ci timeout-minutes: 60 env: diff --git a/.github/workflows/examples-telink.yaml b/.github/workflows/examples-telink.yaml index 15926e99cd470c..65be8410109362 100644 --- a/.github/workflows/examples-telink.yaml +++ b/.github/workflows/examples-telink.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + telink: name: Telink + needs: await-fast-ci env: BUILD_TYPE: telink diff --git a/.github/workflows/examples-tizen.yaml b/.github/workflows/examples-tizen.yaml index ae5a847026d3c1..1a528a9906d408 100644 --- a/.github/workflows/examples-tizen.yaml +++ b/.github/workflows/examples-tizen.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + tizen: name: Tizen + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/java-tests.yaml b/.github/workflows/java-tests.yaml index ff734d2d4fe338..7db36047d12937 100644 --- a/.github/workflows/java-tests.yaml +++ b/.github/workflows/java-tests.yaml @@ -32,8 +32,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + java_tests_linux: name: Linux + needs: await-fast-ci env: TSAN_OPTIONS: "halt_on_error=1 suppressions=scripts/tests/chiptest/tsan-linux-suppressions.txt" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 2b5bbeff0fe465..39985052849024 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -30,7 +30,12 @@ concurrency: cancel-in-progress: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + code-lints: + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/minimal-build.yaml b/.github/workflows/minimal-build.yaml index 6fd9a96e151ec6..9448753360c523 100644 --- a/.github/workflows/minimal-build.yaml +++ b/.github/workflows/minimal-build.yaml @@ -26,8 +26,13 @@ concurrency: cancel-in-progress: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + minimal-all-clusters: name: Linux / configure build of all-clusters-app + needs: await-fast-ci if: github.actor != 'restyled-io[bot]' runs-on: ubuntu-latest @@ -50,6 +55,7 @@ jobs: minimal-network-manager: name: Linux / configure build of network-manager-app + needs: await-fast-ci if: github.actor != 'restyled-io[bot]' runs-on: ubuntu-latest diff --git a/.github/workflows/qemu.yaml b/.github/workflows/qemu.yaml index bff12a5999586e..d38134124fff2d 100644 --- a/.github/workflows/qemu.yaml +++ b/.github/workflows/qemu.yaml @@ -29,9 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml qemu-esp32: name: ESP32 + needs: await-fast-ci env: BUILD_TYPE: esp32-qemu @@ -73,6 +77,7 @@ jobs: qemu-tizen: name: Tizen + needs: await-fast-ci runs-on: ubuntu-latest if: github.actor != 'restyled-io[bot]' diff --git a/.github/workflows/smoketest-android.yaml b/.github/workflows/smoketest-android.yaml index 014573614a0448..6ce4100da631a0 100644 --- a/.github/workflows/smoketest-android.yaml +++ b/.github/workflows/smoketest-android.yaml @@ -27,8 +27,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + android: name: Smoke Run - Android + needs: await-fast-ci env: JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64/ diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index de9bd0d9f64193..d475458691ae34 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -32,8 +32,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + test_suites_linux: name: Test Suites - Linux + needs: await-fast-ci strategy: matrix: @@ -322,6 +327,7 @@ jobs: test_suites_darwin: name: Test Suites - Darwin + needs: await-fast-ci strategy: matrix: @@ -435,6 +441,7 @@ jobs: repl_tests_linux: name: REPL Tests - Linux + needs: await-fast-ci env: TSAN_OPTIONS: "halt_on_error=1 suppressions=scripts/tests/chiptest/tsan-linux-suppressions.txt" @@ -599,6 +606,7 @@ jobs: repl_tests_darwin: name: REPL Tests - Darwin + needs: await-fast-ci strategy: matrix: diff --git a/.github/workflows/unit_integration_test.yaml b/.github/workflows/unit_integration_test.yaml index c1d3bebddde5ae..f99f5f30730fda 100644 --- a/.github/workflows/unit_integration_test.yaml +++ b/.github/workflows/unit_integration_test.yaml @@ -26,8 +26,13 @@ concurrency: cancel-in-progress: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + unit_tests: name: Unit / Integration Tests + needs: await-fast-ci if: github.actor != 'restyled-io[bot]' strategy: diff --git a/.github/workflows/zap_templates.yaml b/.github/workflows/zap_templates.yaml index 987cc82a2e3f06..d82a3ad7e4e15d 100644 --- a/.github/workflows/zap_templates.yaml +++ b/.github/workflows/zap_templates.yaml @@ -29,8 +29,13 @@ env: CHIP_NO_LOG_TIMESTAMPS: true jobs: + await-fast-ci: + name: Await Fast CI + uses: ./.github/workflows/await-fast-ci.yaml + zap_templates: name: ZAP templates generation + needs: await-fast-ci runs-on: ubuntu-20.04 container: diff --git a/scripts/helpers/poll_quick_ci.py b/scripts/helpers/poll_quick_ci.py new file mode 100644 index 00000000000000..de916a22421f55 --- /dev/null +++ b/scripts/helpers/poll_quick_ci.py @@ -0,0 +1,40 @@ +import argparse +import subprocess +import time + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("pr", help="Pull request number") + parser.add_argument("check", help="Pull request check to poll for") + args = parser.parse_args() + + print(f"Gathering info on the {args.check} check being run for the current pull request.") + polling = True + poll_count = 0 + poll_max = 3600 + while (polling): + for line in subprocess.run(f"gh pr checks -R project-chip/connectedhomeip {args.pr}", stdout=subprocess.PIPE, shell=True).stdout.decode("utf-8").splitlines(): + poll_count += 1 + if args.check in line: + print(line) + if "pending" in line: + if poll_count == poll_max: + polling = False + else: + time.sleep(1) + break + elif "pass" in line: + print(f"Fast CI {args.check} has passed; if all fast CI passes, builds and tests may commence.") + exit(0) + elif "fail" in line: + print(f"Fast CI {args.check} has failed; please resolve this issue before running builds and tests.") + exit(1) + + print( + f"Polling for completion of fast CI {args.check} failed. Please ensure the name of the check was entered correctly and verify that it should take less than {poll_max} seconds to run.") + exit(1) + + +if __name__ == "__main__": + main()