Browse Source

test: run all tests on arm linux platforms (#19318)

* test: run all tests on arm platforms

* Use Ubuntu 18.04 for arm64 CI
John Kleinschmidt 5 years ago
parent
commit
e389fa75ea
4 changed files with 13 additions and 24 deletions
  1. 4 2
      Dockerfile.arm64v8
  2. 2 2
      script/spec-runner.js
  3. 6 17
      vsts-arm-test-steps.yml
  4. 1 3
      vsts-arm64v8.yml

+ 4 - 2
Dockerfile.arm64v8

@@ -1,4 +1,4 @@
-FROM arm64v8/ubuntu:16.04
+FROM arm64v8/ubuntu:18.04
 
 RUN groupadd --gid 1000 builduser \
   && useradd --uid 1000 --gid builduser --shell /bin/bash --create-home builduser
@@ -41,7 +41,6 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
  nano \
  python-setuptools \
  python-pip \
- python-dbusmock \
  sudo \
  unzip \
  wget \
@@ -56,6 +55,9 @@ RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - \
 # crcmod is required by gsutil, which is used for filling the gclient git cache
 RUN pip install -U crcmod
 
+# dbusmock is needed for Electron tests
+RUN pip install python-dbusmock
+
 ADD tools/xvfb-init.sh /etc/init.d/xvfb
 RUN chmod a+x /etc/init.d/xvfb
 

+ 2 - 2
script/spec-runner.js

@@ -150,8 +150,8 @@ async function installSpecModules () {
     cwd: path.resolve(__dirname, '../spec'),
     stdio: 'inherit'
   })
-  if (status !== 0) {
-    throw new Error('Failed to npm install in the spec folder')
+  if (status !== 0 && !process.env.IGNORE_YARN_INSTALL_ERROR) {
+    throw new Error('Failed to yarn install in the spec folder')
   }
 }
 

+ 6 - 17
vsts-arm-test-steps.yml

@@ -53,14 +53,6 @@ steps:
   env:
     CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
 
-
-- bash: |
-    cd src
-    export npm_config_nodedir=$PWD/out/Default/gen/node_headers
-    cd electron/spec
-    node ../script/yarn.js install --frozen-lockfile
-  displayName: Install test modules
-
 - bash: |
     sh -e /etc/init.d/xvfb start
   displayName: Setup for headless testing
@@ -68,21 +60,21 @@ steps:
     DISPLAY: ":99.0"
 
 - bash: |
-   cd src
-   ./out/Default/electron electron/spec --ci --enable-logging
+    cd src
+    export ELECTRON_OUT_DIR=Default
+    (cd electron && node script/yarn test -- --ci --enable-logging)
   displayName: 'Run Electron tests'
-  timeoutInMinutes: 10
+  timeoutInMinutes: 20
   env:
-    ELECTRON_DISABLE_SANDBOX: 1
     ELECTRON_DISABLE_SECURITY_WARNINGS: 1
+    IGNORE_YARN_INSTALL_ERROR: 1
+    ELECTRON_TEST_RESULTS_DIR: junit
 
 - bash: |
     cd src
     python electron/script/verify-ffmpeg.py --source-root "$PWD" --build-dir out/Default --ffmpeg-path out/ffmpeg
   displayName: Verify non proprietary ffmpeg
   timeoutInMinutes: 5
-  env:
-    ELECTRON_DISABLE_SANDBOX: 1
 
 - bash: |
     cd src
@@ -90,9 +82,6 @@ steps:
     python electron/script/verify-mksnapshot.py --source-root "$PWD" --build-dir out/Default --snapshot-files-dir $PWD/out/Default/cross-arch-snapshots
   displayName: Verify cross arch snapshot
   timeoutInMinutes: 5
-  env:
-    ELECTRON_DISABLE_SANDBOX: 1
-  condition: and(succeeded(), eq(variables['RUN_NATIVE_MKSNAPSHOT'], 'true'))
 
 - task: PublishTestResults@2
   displayName: 'Publish Test Results'

+ 1 - 3
vsts-arm64v8.yml

@@ -1,10 +1,8 @@
 resources:
   containers:
   - container: arm64v8-test-container
-    image: electronbuilds/arm64v8:0.0.4
+    image: electronbuilds/arm64v8:0.0.5
     options: --shm-size 128m
-    env:
-      RUN_NATIVE_MKSNAPSHOT: true
 
 jobs:
 - job: Test_Arm64