@@ -22,14 +22,13 @@ defaults: &defaults
22
22
COLUMNS : 100
23
23
LINES : 24
24
24
25
- # filters and requires for testing binary with Firefox
26
25
mainBuildFilters : &mainBuildFilters
27
26
filters :
28
27
branches :
29
28
only :
30
29
- develop
31
30
- 10.0-release
32
- - use-m1-runners
31
+ - linux-arm64
33
32
34
33
# usually we don't build Mac app - it takes a long time
35
34
# but sometimes we want to really confirm we are doing the right thing
@@ -38,14 +37,23 @@ macWorkflowFilters: &darwin-workflow-filters
38
37
when :
39
38
or :
40
39
- equal : [ develop, << pipeline.git.branch >> ]
41
- - equal : [ use-m1-runners, << pipeline.git.branch >> ]
40
+ - equal : [ linux-arm64, << pipeline.git.branch >> ]
41
+ - matches :
42
+ pattern : " -release$"
43
+ value : << pipeline.git.branch >>
44
+
45
+ linuxArm64WorkflowFilters : &linux-arm64-workflow-filters
46
+ when :
47
+ or :
48
+ - equal : [ develop, << pipeline.git.branch >> ]
49
+ - equal : [ linux-arm64, << pipeline.git.branch >> ]
42
50
- matches :
43
51
pattern : " -release$"
44
52
value : << pipeline.git.branch >>
45
53
46
54
# uncomment & add to the branch conditions below to disable the main linux
47
55
# flow if we don't want to test it for a certain branch
48
- linuxWorkflowExcludeFilters : &linux-workflow-exclude-filters
56
+ linuxWorkflowExcludeFilters : &linux-x64- workflow-exclude-filters
49
57
unless :
50
58
or :
51
59
- false
@@ -58,7 +66,7 @@ fullWindowsWorkflowFilters: &full-windows-workflow-filters
58
66
branches :
59
67
only :
60
68
- develop
61
- - ' use-m1-runners '
69
+ - ' linux-arm64 '
62
70
- ' *-release'
63
71
- ' win*'
64
72
@@ -108,13 +116,20 @@ executors:
108
116
environment :
109
117
PLATFORM : darwin
110
118
119
+ linux-arm64 :
120
+ machine :
121
+ image : ubuntu-2004:2022.04.1
122
+ resource_class : arm.medium
123
+ environment :
124
+ PLATFORM : linux
125
+
111
126
commands :
112
127
verify_should_persist_artifacts :
113
128
steps :
114
129
- run :
115
130
name : Check current branch to persist artifacts
116
131
command : |
117
- if [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "use-m1-runners " ]]; then
132
+ if [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "linux-arm64 " ]]; then
118
133
echo "Not uploading artifacts or posting install comment for this branch."
119
134
circleci-agent step halt
120
135
fi
@@ -955,12 +970,24 @@ commands:
955
970
# notarization on Mac can take a while
956
971
no_output_timeout : " 45m"
957
972
command : |
973
+ if [[ `node ./scripts/get-platform-key.js` == 'linux-arm64' ]]; then
974
+ # these are missing on Circle and there is no way to pre-install them on Arm
975
+ sudo apt-get update
976
+ sudo apt-get install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb
977
+ fi
958
978
node --version
959
979
yarn binary-build --version $(node ./scripts/get-next-version.js)
960
980
- run :
961
981
name : Zip the binary
962
982
command : |
963
- [[ $PLATFORM == 'linux' ]] && apt-get update && apt-get install -y zip || [[ $PLATFORM != 'linux' ]]
983
+ if [[ $PLATFORM == 'linux' ]]; then
984
+ # on Arm, CI runs as non-root, on x64 CI runs as root but there is no sudo binary
985
+ if [[ `whoami` == 'root' ]]; then
986
+ apt-get update && apt-get install -y zip
987
+ else
988
+ sudo apt-get update && sudo apt-get install -y zip
989
+ fi
990
+ fi
964
991
yarn binary-zip
965
992
- store-npm-logs
966
993
- persist_to_workspace :
@@ -2236,7 +2263,7 @@ jobs:
2236
2263
command : DEBUG=cypress:cli $(yarn bin cypress) run
2237
2264
- store-npm-logs
2238
2265
2239
- linux-workflow : &linux-workflow
2266
+ linux-x64- workflow : &linux-x64 -workflow
2240
2267
jobs :
2241
2268
- node_modules_install
2242
2269
- build :
@@ -2545,6 +2572,31 @@ linux-workflow: &linux-workflow
2545
2572
- create-build-artifacts
2546
2573
- system-tests-node-modules-install
2547
2574
2575
+ linux-arm64-workflow : &linux-arm64-workflow
2576
+ jobs :
2577
+ - node_modules_install :
2578
+ name : linux-arm64-node-modules-install
2579
+ executor : linux-arm64
2580
+ resource_class : arm.medium
2581
+ only-cache-for-root-user : true
2582
+
2583
+ - build :
2584
+ name : linux-arm64-build
2585
+ executor : linux-arm64
2586
+ resource_class : arm.medium
2587
+ requires :
2588
+ - linux-arm64-node-modules-install
2589
+
2590
+ - create-build-artifacts :
2591
+ name : linux-arm64-create-build-artifacts
2592
+ context :
2593
+ - test-runner:upload
2594
+ - test-runner:commit-status-checks
2595
+ executor : linux-arm64
2596
+ resource_class : arm.medium
2597
+ requires :
2598
+ - linux-arm64-build
2599
+
2548
2600
darwin-x64-workflow : &darwin-x64-workflow
2549
2601
jobs :
2550
2602
- node_modules_install :
@@ -2675,9 +2727,12 @@ windows-workflow: &windows-workflow
2675
2727
- windows-create-build-artifacts
2676
2728
2677
2729
workflows :
2678
- linux :
2679
- << : *linux-workflow
2680
- << : *linux-workflow-exclude-filters
2730
+ linux-x64 :
2731
+ << : *linux-x64-workflow
2732
+ << : *linux-x64-workflow-exclude-filters
2733
+ linux-arm64 :
2734
+ << : *linux-arm64-workflow
2735
+ << : *linux-arm64-workflow-filters
2681
2736
darwin-x64 :
2682
2737
<< : *darwin-x64-workflow
2683
2738
<< : *darwin-workflow-filters
0 commit comments