|
@@ -86,6 +86,14 @@ executors:
|
|
|
resource_class: electronjs/macos-arm64
|
|
|
machine: true
|
|
|
|
|
|
+ linux-arm:
|
|
|
+ resource_class: electronjs/linux-arm
|
|
|
+ machine: true
|
|
|
+
|
|
|
+ linux-arm64:
|
|
|
+ resource_class: electronjs/linux-arm64
|
|
|
+ machine: true
|
|
|
+
|
|
|
# The config expects the following environment variables to be set:
|
|
|
# - "SLACK_WEBHOOK" Slack hook URL to send notifications.
|
|
|
#
|
|
@@ -233,7 +241,14 @@ step-maybe-cleanup-arm64-mac: &step-maybe-cleanup-arm64-mac
|
|
|
killall Safari || echo "No Safari processes left running"
|
|
|
rm -rf ~/Library/Application\ Support/Electron*
|
|
|
rm -rf ~/Library/Application\ Support/electron*
|
|
|
+ elif [ "$TARGET_ARCH" == "arm" ] || [ "$TARGET_ARCH" == "arm64" ]; then
|
|
|
+ XVFB=/usr/bin/Xvfb
|
|
|
+ /sbin/start-stop-daemon --stop --exec $XVFB || echo "Xvfb not running"
|
|
|
+ pkill electron || echo "electron not running"
|
|
|
+ rm -rf ~/.config/Electron*
|
|
|
+ rm -rf ~/.config/electron*
|
|
|
fi
|
|
|
+
|
|
|
when: always
|
|
|
|
|
|
step-checkout-electron: &step-checkout-electron
|
|
@@ -733,7 +748,7 @@ step-verify-mksnapshot: &step-verify-mksnapshot
|
|
|
command: |
|
|
|
if [ "$IS_ASAN" != "1" ]; then
|
|
|
cd src
|
|
|
- if [ "$TARGET_ARCH" == "arm64" ] &&[ "`uname`" == "Darwin" ]; then
|
|
|
+ if [ "$TARGET_ARCH" == "arm" ] || [ "$TARGET_ARCH" == "arm64" ]; then
|
|
|
python electron/script/verify-mksnapshot.py --source-root "$PWD" --build-dir out/Default --snapshot-files-dir $PWD/cross-arch-snapshots
|
|
|
else
|
|
|
python electron/script/verify-mksnapshot.py --source-root "$PWD" --build-dir out/Default
|
|
@@ -858,28 +873,6 @@ step-maybe-cross-arch-snapshot: &step-maybe-cross-arch-snapshot
|
|
|
cp out/Default-mksnapshot-test/*.bin cross-arch-snapshots
|
|
|
fi
|
|
|
|
|
|
-step-maybe-trigger-arm-test: &step-maybe-trigger-arm-test
|
|
|
- run:
|
|
|
- name: Trigger an arm test on VSTS if applicable
|
|
|
- command: |
|
|
|
- cd src
|
|
|
- # Only run for non-fork prs
|
|
|
- if [ "$TRIGGER_ARM_TEST" == "true" ] && [ -z "$CIRCLE_PR_NUMBER" ]; then
|
|
|
- #Trigger VSTS job, passing along CircleCI job number and branch to build
|
|
|
- if [ "`uname`" == "Darwin" ]; then
|
|
|
- if [ x"$MAS_BUILD" == x"true" ]; then
|
|
|
- export DEVOPS_BUILD="electron-mas-arm64-testing"
|
|
|
- else
|
|
|
- export DEVOPS_BUILD="electron-osx-arm64-testing"
|
|
|
- fi
|
|
|
- echo "Triggering $DEVOPS_BUILD build on Azure DevOps"
|
|
|
- node electron/script/release/ci-release-build.js --job=$DEVOPS_BUILD --ci=DevOps --armTest --circleBuildNum=$CIRCLE_BUILD_NUM $CIRCLE_BRANCH
|
|
|
- else
|
|
|
- echo "Triggering electron-$TARGET_ARCH-testing build on VSTS"
|
|
|
- node electron/script/release/ci-release-build.js --job=electron-$TARGET_ARCH-testing --ci=VSTS --armTest --circleBuildNum=$CIRCLE_BUILD_NUM $CIRCLE_BRANCH
|
|
|
- fi
|
|
|
- fi
|
|
|
-
|
|
|
step-maybe-generate-typescript-defs: &step-maybe-generate-typescript-defs
|
|
|
run:
|
|
|
name: Generate type declarations
|
|
@@ -1238,7 +1231,7 @@ steps-tests: &steps-tests
|
|
|
(cd electron && node script/yarn test --runners=main --trace-uncaught --enable-logging --files $(circleci tests glob spec-main/*-spec.ts | circleci tests split --split-by=timings)) 2>&1 | $ASAN_SYMBOLIZE
|
|
|
(cd electron && node script/yarn test --runners=remote --trace-uncaught --enable-logging --files $(circleci tests glob spec/*-spec.js | circleci tests split --split-by=timings)) 2>&1 | $ASAN_SYMBOLIZE
|
|
|
else
|
|
|
- if [ "$TARGET_ARCH" == "arm64" ] &&[ "`uname`" == "Darwin" ]; then
|
|
|
+ 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)
|
|
|
(cd electron && node script/yarn test --runners=remote --trace-uncaught --enable-logging)
|
|
@@ -1558,6 +1551,7 @@ commands:
|
|
|
- when:
|
|
|
condition: << parameters.build >>
|
|
|
steps:
|
|
|
+ - move_and_store_all_artifacts
|
|
|
- run:
|
|
|
name: Remove the big things on macOS, this seems to be better on average
|
|
|
command: |
|
|
@@ -1575,11 +1569,6 @@ commands:
|
|
|
steps:
|
|
|
- *step-save-out-cache
|
|
|
|
|
|
- - move_and_store_all_artifacts
|
|
|
-
|
|
|
- # Trigger tests on arm hardware if needed
|
|
|
- - *step-maybe-trigger-arm-test
|
|
|
-
|
|
|
- *step-maybe-notify-slack-failure
|
|
|
|
|
|
electron-publish:
|
|
@@ -1899,7 +1888,7 @@ jobs:
|
|
|
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
|
|
|
steps:
|
|
|
- electron-build:
|
|
|
- persist: false
|
|
|
+ persist: true
|
|
|
checkout: true
|
|
|
use-out-cache: false
|
|
|
|
|
@@ -1944,7 +1933,7 @@ jobs:
|
|
|
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
|
|
|
steps:
|
|
|
- electron-build:
|
|
|
- persist: false
|
|
|
+ persist: true
|
|
|
checkout: true
|
|
|
use-out-cache: false
|
|
|
|
|
@@ -2323,6 +2312,24 @@ jobs:
|
|
|
<<: *env-send-slack-notifications
|
|
|
<<: *steps-verify-ffmpeg
|
|
|
|
|
|
+ linux-arm-testing-tests:
|
|
|
+ executor: linux-arm
|
|
|
+ environment:
|
|
|
+ <<: *env-arm
|
|
|
+ <<: *env-global
|
|
|
+ <<: *env-headless-testing
|
|
|
+ <<: *env-stack-dumping
|
|
|
+ <<: *steps-tests
|
|
|
+
|
|
|
+ linux-arm64-testing-tests:
|
|
|
+ executor: linux-arm64
|
|
|
+ environment:
|
|
|
+ <<: *env-arm64
|
|
|
+ <<: *env-global
|
|
|
+ <<: *env-headless-testing
|
|
|
+ <<: *env-stack-dumping
|
|
|
+ <<: *steps-tests
|
|
|
+
|
|
|
osx-testing-x64-tests:
|
|
|
executor:
|
|
|
name: macos
|
|
@@ -2502,8 +2509,23 @@ workflows:
|
|
|
- linux-ia32-testing
|
|
|
|
|
|
- linux-arm-testing
|
|
|
+ - linux-arm-testing-tests:
|
|
|
+ filters:
|
|
|
+ branches:
|
|
|
+ # Do not run this on forked pull requests
|
|
|
+ ignore: /pull\/[0-9]+/
|
|
|
+ requires:
|
|
|
+ - linux-arm-testing
|
|
|
|
|
|
- linux-arm64-testing
|
|
|
+ - linux-arm64-testing-tests:
|
|
|
+ filters:
|
|
|
+ branches:
|
|
|
+ # Do not run this on forked pull requests
|
|
|
+ ignore: /pull\/[0-9]+/
|
|
|
+ requires:
|
|
|
+ - linux-arm64-testing
|
|
|
+
|
|
|
- linux-arm64-testing-gn-check:
|
|
|
requires:
|
|
|
- linux-checkout-for-workspace
|