|
@@ -97,6 +97,10 @@ machine-mac-large-arm: &machine-mac-large-arm
|
|
|
macos:
|
|
|
xcode: "12.2.0"
|
|
|
|
|
|
+machine-mac-arm64: &machine-mac-arm64
|
|
|
+ resource_class: electronjs/macos-arm64
|
|
|
+ machine: true
|
|
|
+
|
|
|
# Build configurations options.
|
|
|
env-testing-build: &env-testing-build
|
|
|
GN_CONFIG: //electron/build/args/testing.gn
|
|
@@ -141,6 +145,7 @@ env-apple-silicon: &env-apple-silicon
|
|
|
GN_EXTRA_ARGS: 'target_cpu = "arm64" use_prebuilt_v8_context_snapshot = true'
|
|
|
TARGET_ARCH: arm64
|
|
|
USE_PREBUILT_V8_CONTEXT_SNAPSHOT: 1
|
|
|
+ npm_config_arch: arm64
|
|
|
|
|
|
env-arm64: &env-arm64
|
|
|
GN_EXTRA_ARGS: 'target_cpu = "arm64" fatal_linker_warnings = false enable_linux_installer = false'
|
|
@@ -457,7 +462,7 @@ step-install-signing-cert-on-mac: &step-install-signing-cert-on-mac
|
|
|
run:
|
|
|
name: Import and trust self-signed codesigning cert on MacOS
|
|
|
command: |
|
|
|
- if [ "`uname`" == "Darwin" ]; then
|
|
|
+ if [ "$TARGET_ARCH" != "arm64" ] && [ "`uname`" == "Darwin" ]; then
|
|
|
cd src/electron
|
|
|
./script/codesign/generate-identity.sh
|
|
|
fi
|
|
@@ -670,6 +675,7 @@ step-persist-data-for-tests: &step-persist-data-for-tests
|
|
|
- src/electron
|
|
|
- src/third_party/electron_node
|
|
|
- src/third_party/nan
|
|
|
+ - src/cross-arch-snapshots
|
|
|
|
|
|
step-electron-dist-unzip: &step-electron-dist-unzip
|
|
|
run:
|
|
@@ -732,7 +738,11 @@ step-verify-mksnapshot: &step-verify-mksnapshot
|
|
|
name: Verify mksnapshot
|
|
|
command: |
|
|
|
cd src
|
|
|
- python electron/script/verify-mksnapshot.py --source-root "$PWD" --build-dir out/Default
|
|
|
+ if [ "$TARGET_ARCH" == "arm64" ] &&[ "`uname`" == "Darwin" ]; 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
|
|
|
+ fi
|
|
|
|
|
|
step-verify-chromedriver: &step-verify-chromedriver
|
|
|
run:
|
|
@@ -835,7 +845,7 @@ step-maybe-cross-arch-snapshot: &step-maybe-cross-arch-snapshot
|
|
|
run:
|
|
|
name: Generate cross arch snapshot (arm/arm64)
|
|
|
command: |
|
|
|
- if [ "$TRIGGER_ARM_TEST" == "true" ] && [ -z "$CIRCLE_PR_NUMBER" ]; then
|
|
|
+ if [ "$GENERATE_CROSS_ARCH_SNAPSHOT" == "true" ] && [ -z "$CIRCLE_PR_NUMBER" ]; then
|
|
|
cd src
|
|
|
if [ "$TARGET_ARCH" == "arm" ]; then
|
|
|
export MKSNAPSHOT_PATH="clang_x86_v8_arm"
|
|
@@ -868,8 +878,13 @@ step-maybe-trigger-arm-test: &step-maybe-trigger-arm-test
|
|
|
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
|
|
|
- echo "Triggering electron-arm2-testing build on Azure DevOps"
|
|
|
- node electron/script/release/ci-release-build.js --job=electron-arm2-testing --ci=DevOps --armTest --circleBuildNum=$CIRCLE_BUILD_NUM $CIRCLE_BRANCH
|
|
|
+ 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
|
|
@@ -1290,8 +1305,14 @@ steps-tests: &steps-tests
|
|
|
ELECTRON_DISABLE_SECURITY_WARNINGS: 1
|
|
|
command: |
|
|
|
cd src
|
|
|
- (cd electron && node script/yarn test --runners=main --trace-uncaught --enable-logging --files $(circleci tests glob spec-main/*-spec.ts | circleci tests split))
|
|
|
- (cd electron && node script/yarn test --runners=remote --trace-uncaught --enable-logging --files $(circleci tests glob spec/*-spec.js | circleci tests split))
|
|
|
+ if [ "$TARGET_ARCH" == "arm64" ] &&[ "`uname`" == "Darwin" ]; 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)
|
|
|
+ else
|
|
|
+ (cd electron && node script/yarn test --runners=main --trace-uncaught --enable-logging --files $(circleci tests glob spec-main/*-spec.ts | circleci tests split))
|
|
|
+ (cd electron && node script/yarn test --runners=remote --trace-uncaught --enable-logging --files $(circleci tests glob spec/*-spec.js | circleci tests split))
|
|
|
+ fi
|
|
|
- run:
|
|
|
name: Check test results existence
|
|
|
command: |
|
|
@@ -1889,6 +1910,7 @@ jobs:
|
|
|
<<: *env-testing-build
|
|
|
<<: *env-ninja-status
|
|
|
TRIGGER_ARM_TEST: true
|
|
|
+ GENERATE_CROSS_ARCH_SNAPSHOT: true
|
|
|
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
|
|
|
steps:
|
|
|
- electron-build:
|
|
@@ -1947,6 +1969,7 @@ jobs:
|
|
|
<<: *env-testing-build
|
|
|
<<: *env-ninja-status
|
|
|
TRIGGER_ARM_TEST: true
|
|
|
+ GENERATE_CROSS_ARCH_SNAPSHOT: true
|
|
|
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
|
|
|
steps:
|
|
|
- electron-build:
|
|
@@ -2098,6 +2121,7 @@ jobs:
|
|
|
<<: *env-macos-build
|
|
|
<<: *env-apple-silicon
|
|
|
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_mac=True --custom-var=host_os=mac'
|
|
|
+ GENERATE_CROSS_ARCH_SNAPSHOT: true
|
|
|
steps:
|
|
|
- electron-build:
|
|
|
persist: true
|
|
@@ -2204,6 +2228,7 @@ jobs:
|
|
|
<<: *env-macos-build
|
|
|
<<: *env-mas-apple-silicon
|
|
|
GCLIENT_EXTRA_ARGS: '--custom-var=checkout_mac=True --custom-var=host_os=mac'
|
|
|
+ GENERATE_CROSS_ARCH_SNAPSHOT: true
|
|
|
steps:
|
|
|
- electron-build:
|
|
|
persist: true
|
|
@@ -2357,6 +2382,14 @@ jobs:
|
|
|
<<: *env-send-slack-notifications
|
|
|
<<: *steps-verify-ffmpeg
|
|
|
|
|
|
+ osx-testing-arm64-tests:
|
|
|
+ <<: *machine-mac-arm64
|
|
|
+ environment:
|
|
|
+ <<: *env-mac-large
|
|
|
+ <<: *env-stack-dumping
|
|
|
+ <<: *env-apple-silicon
|
|
|
+ <<: *steps-tests
|
|
|
+
|
|
|
mas-testing-x64-tests:
|
|
|
<<: *machine-mac-large
|
|
|
environment:
|
|
@@ -2380,6 +2413,14 @@ jobs:
|
|
|
<<: *env-send-slack-notifications
|
|
|
<<: *steps-verify-ffmpeg
|
|
|
|
|
|
+ mas-testing-arm64-tests:
|
|
|
+ <<: *machine-mac-arm64
|
|
|
+ environment:
|
|
|
+ <<: *env-mac-large
|
|
|
+ <<: *env-stack-dumping
|
|
|
+ <<: *env-apple-silicon
|
|
|
+ <<: *steps-tests
|
|
|
+
|
|
|
# Layer 4: Summary.
|
|
|
linux-x64-release-summary:
|
|
|
<<: *machine-linux-medium
|
|
@@ -2591,6 +2632,14 @@ workflows:
|
|
|
requires:
|
|
|
- mac-checkout-and-save-cache
|
|
|
|
|
|
+ - osx-testing-arm64-tests:
|
|
|
+ filters:
|
|
|
+ branches:
|
|
|
+ # Do not run this on forked pull requests
|
|
|
+ ignore: /pull\/[0-9]+/
|
|
|
+ requires:
|
|
|
+ - osx-testing-arm64
|
|
|
+
|
|
|
- mas-testing-x64:
|
|
|
requires:
|
|
|
- mac-checkout-and-save-cache
|
|
@@ -2607,6 +2656,14 @@ workflows:
|
|
|
requires:
|
|
|
- mac-checkout-and-save-cache
|
|
|
|
|
|
+ - mas-testing-arm64-tests:
|
|
|
+ filters:
|
|
|
+ branches:
|
|
|
+ # Do not run this on forked pull requests
|
|
|
+ ignore: /pull\/[0-9]+/
|
|
|
+ requires:
|
|
|
+ - mas-testing-arm64
|
|
|
+
|
|
|
nightly-linux-release-test:
|
|
|
triggers:
|
|
|
- schedule:
|