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
This commit is contained in:
Samuel Attard 2024-01-10 13:12:19 +13:00 committed by GitHub
parent 3afb012ad1
commit ebf9a49fba
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -80,12 +80,14 @@ executors:
machine: true machine: true
linux-arm: linux-arm:
resource_class: electronjs/linux-arm resource_class: electronjs/aks-linux-arm-test
machine: true docker:
- image: ghcr.io/electron/test:arm32v7-8e0f85b708fa58e28e4824954d6fd55adfda5e9e
linux-arm64: linux-arm64:
resource_class: electronjs/linux-arm64 resource_class: electronjs/aks-linux-arm-test
machine: true docker:
- image: ghcr.io/electron/test:arm64v8-76d5d29e247972da3855a01c2d8cf72c5998233a
# The config expects the following environment variables to be set: # The config expects the following environment variables to be set:
# - "SLACK_WEBHOOK" Slack hook URL to send notifications. # - "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 LLVM_SYMBOLIZER_PATH=$PWD/third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer
export MOCHA_TIMEOUT=180000 export MOCHA_TIMEOUT=180000
echo "Piping output to ASAN_SYMBOLIZE ($ASAN_SYMBOLIZE)" 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 else
if [ "$TARGET_ARCH" == "arm" ] || [ "$TARGET_ARCH" == "arm64" ]; then if [ "$TARGET_ARCH" == "ia32" ]; then
export ELECTRON_SKIP_NATIVE_MODULE_TESTS=true npm_config_arch=x64 node electron/node_modules/dugite/script/download-git.js
(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))
fi 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 fi
- store_test_results: - store_test_results:
path: src/junit path: src/junit
@ -2265,6 +2262,7 @@ jobs:
<<: *env-global <<: *env-global
<<: *env-headless-testing <<: *env-headless-testing
<<: *env-stack-dumping <<: *env-stack-dumping
parallelism: 3
steps: steps:
- electron-tests: - electron-tests:
artifact-key: linux-arm artifact-key: linux-arm
@ -2276,6 +2274,7 @@ jobs:
<<: *env-global <<: *env-global
<<: *env-headless-testing <<: *env-headless-testing
<<: *env-stack-dumping <<: *env-stack-dumping
parallelism: 3
steps: steps:
- electron-tests: - electron-tests:
artifact-key: linux-arm64 artifact-key: linux-arm64