From 12f341e8bf9709840acf44a86e5b2f7aa76dde67 Mon Sep 17 00:00:00 2001 From: landerlyoung Date: Mon, 23 Sep 2024 11:36:33 +0800 Subject: [PATCH] make v8-version-build job concurrent --- .github/workflows/unit_tests.yml | 3 +++ test/cmake/test_v8_compiles.sh | 21 ++++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index eb13ead6..507bda83 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -143,6 +143,8 @@ jobs: runs-on: ubuntu-20.04 strategy: fail-fast: false + matrix: + job_split: [ 0/4, 1/4, 2/3, 3/4 ] # format index{0 .. index-1}/concurrency steps: - uses: actions/checkout@v2 - uses: actions/cache@v2 @@ -153,6 +155,7 @@ jobs: - name: Test build v8 on supported versions env: SCRIPTX_TEST_FORCE_UPDATE_DEPS: ON + SCRIPTX_TEST_JOB_SPLIT_CONFIG: ${{ matrix.job_split }} run: | mkdir -p build && cd build ../test/cmake/test_v8_compiles.sh continue diff --git a/test/cmake/test_v8_compiles.sh b/test/cmake/test_v8_compiles.sh index 35d5a923..dd1f5585 100755 --- a/test/cmake/test_v8_compiles.sh +++ b/test/cmake/test_v8_compiles.sh @@ -62,9 +62,24 @@ function compile() { if [[ -n $TARGET_VERSION ]] ; then compile $TARGET_VERSION else - for version in "${SUPPORTED_VERSIONS[@]}"; do - compile $version - done + if echo $SCRIPTX_TEST_JOB_SPLIT_CONFIG | egrep -q -e '^\d+\/\d+$'; then + TOTAL=$(echo ${SCRIPTX_TEST_JOB_SPLIT_CONFIG} | cut -d/ -f 2) + INDEX=$(echo ${SCRIPTX_TEST_JOB_SPLIT_CONFIG} | cut -d/ -f 1) + COUNT=${#SUPPORTED_VERSIONS[@]} + + START=$((($COUNT * $INDEX + $TOTAL - 1) / $TOTAL)) # upper COUNT * INDEX / TOTAL + END=$(($COUNT * ($INDEX + 1) / $TOTAL)) # upper COUNT * INDEX / TOTAL + + echo "split job=[$START, $END] total=$COUNT" + + for ((i = $START; i < $END; i++)); do + compile ${SUPPORTED_VERSIONS[$i]} + done + else + for version in "${SUPPORTED_VERSIONS[@]}"; do + compile $version + done + fi fi echo "passed versions: [${PASSED_VERSIONS[@]}]"