From ebf9a49fba73875bee1712b767db40f8b0a4f488 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Wed, 10 Jan 2024 13:12:19 +1300 Subject: [PATCH] build: use container runner for arm tests (#40875) * build: use aks arm64 test runners * build: better image * build: even more stuff * build: arm par * build: use aks arm32 * build: arm32 par * build: get test timings from abs paths * build: avoid realpath, use echo --- .circleci/config/base.yml | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/.circleci/config/base.yml b/.circleci/config/base.yml index a24b086c4fc2..651320687a75 100644 --- a/.circleci/config/base.yml +++ b/.circleci/config/base.yml @@ -80,12 +80,14 @@ executors: machine: true linux-arm: - resource_class: electronjs/linux-arm - machine: true + resource_class: electronjs/aks-linux-arm-test + docker: + - image: ghcr.io/electron/test:arm32v7-8e0f85b708fa58e28e4824954d6fd55adfda5e9e linux-arm64: - resource_class: electronjs/linux-arm64 - machine: true + resource_class: electronjs/aks-linux-arm-test + docker: + - image: ghcr.io/electron/test:arm64v8-76d5d29e247972da3855a01c2d8cf72c5998233a # The config expects the following environment variables to be set: # - "SLACK_WEBHOOK" Slack hook URL to send notifications. @@ -1627,17 +1629,12 @@ commands: export LLVM_SYMBOLIZER_PATH=$PWD/third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer export MOCHA_TIMEOUT=180000 echo "Piping output to ASAN_SYMBOLIZE ($ASAN_SYMBOLIZE)" - (cd electron && (circleci tests glob "spec/*-spec.ts" | circleci tests run --command="xargs node script/yarn test --runners=main --trace-uncaught --enable-logging --files" --split-by=timings 2>&1)) | $ASAN_SYMBOLIZE + (cd electron && (circleci tests glob "spec/*-spec.ts" | xargs -I@ -P4 bash -c "echo $(pwd)/@" | circleci tests run --command="xargs node script/yarn test --runners=main --trace-uncaught --enable-logging --files" --split-by=timings 2>&1)) | $ASAN_SYMBOLIZE else - if [ "$TARGET_ARCH" == "arm" ] || [ "$TARGET_ARCH" == "arm64" ]; then - export ELECTRON_SKIP_NATIVE_MODULE_TESTS=true - (cd electron && node script/yarn test --runners=main --trace-uncaught --enable-logging) - else - if [ "$TARGET_ARCH" == "ia32" ]; then - npm_config_arch=x64 node electron/node_modules/dugite/script/download-git.js - fi - (cd electron && (circleci tests glob "spec/*-spec.ts" | circleci tests run --command="xargs node script/yarn test --runners=main --trace-uncaught --enable-logging --files" --split-by=timings)) + if [ "$TARGET_ARCH" == "ia32" ]; then + npm_config_arch=x64 node electron/node_modules/dugite/script/download-git.js fi + (cd electron && (circleci tests glob "spec/*-spec.ts" | xargs -I@ -P4 bash -c "echo $(pwd)/@" | circleci tests run --command="xargs node script/yarn test --runners=main --trace-uncaught --enable-logging --files" --split-by=timings)) fi - store_test_results: path: src/junit @@ -2265,6 +2262,7 @@ jobs: <<: *env-global <<: *env-headless-testing <<: *env-stack-dumping + parallelism: 3 steps: - electron-tests: artifact-key: linux-arm @@ -2276,6 +2274,7 @@ jobs: <<: *env-global <<: *env-headless-testing <<: *env-stack-dumping + parallelism: 3 steps: - electron-tests: artifact-key: linux-arm64