azure-pipelines-arm.yml 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. steps:
  2. - task: CopyFiles@2
  3. displayName: 'Copy Files to: src/electron'
  4. inputs:
  5. TargetFolder: src/electron
  6. - bash: |
  7. cd src/electron
  8. node script/yarn.js install --frozen-lockfile
  9. displayName: 'Yarn install'
  10. - bash: |
  11. export ZIP_DEST=$PWD/src/out/Default
  12. echo "##vso[task.setvariable variable=ZIP_DEST]$ZIP_DEST"
  13. mkdir -p $ZIP_DEST
  14. cd src/electron
  15. node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=dist.zip --dest=$ZIP_DEST
  16. cd $ZIP_DEST
  17. unzip -o dist.zip
  18. xattr -cr Electron.app
  19. displayName: 'Download and unzip dist files for test'
  20. env:
  21. CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
  22. - bash: |
  23. export FFMPEG_ZIP_DEST=$PWD/src/out/ffmpeg
  24. mkdir -p $FFMPEG_ZIP_DEST
  25. cd src/electron
  26. node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=ffmpeg.zip --dest=$FFMPEG_ZIP_DEST
  27. cd $FFMPEG_ZIP_DEST
  28. unzip -o ffmpeg.zip
  29. displayName: 'Download and unzip ffmpeg for test'
  30. env:
  31. CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
  32. - bash: |
  33. export NODE_HEADERS_DEST=$PWD/src/out/Default/gen
  34. mkdir -p $NODE_HEADERS_DEST
  35. cd src/electron
  36. node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=node_headers.tar.gz --dest=$NODE_HEADERS_DEST
  37. cd $NODE_HEADERS_DEST
  38. tar xzf node_headers.tar.gz
  39. displayName: 'Download and untar node header files for test'
  40. env:
  41. CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
  42. - bash: |
  43. export CROSS_ARCH_SNAPSHOTS=$PWD/src/out/Default/cross-arch-snapshots
  44. mkdir -p $CROSS_ARCH_SNAPSHOTS
  45. cd src/electron
  46. node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=cross-arch-snapshots/snapshot_blob.bin --dest=$CROSS_ARCH_SNAPSHOTS
  47. node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=cross-arch-snapshots/v8_context_snapshot.arm64.bin --dest=$CROSS_ARCH_SNAPSHOTS
  48. displayName: 'Download cross arch snapshot files'
  49. env:
  50. CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
  51. - bash: |
  52. cd src
  53. export ELECTRON_OUT_DIR=Default
  54. export npm_config_arch=arm64
  55. (cd electron && node script/yarn test --enable-logging --runners main)
  56. displayName: 'Run Electron main tests'
  57. timeoutInMinutes: 20
  58. env:
  59. ELECTRON_DISABLE_SECURITY_WARNINGS: 1
  60. IGNORE_YARN_INSTALL_ERROR: 1
  61. ELECTRON_TEST_RESULTS_DIR: junit
  62. - bash: |
  63. cd src
  64. export ELECTRON_OUT_DIR=Default
  65. export npm_config_arch=arm64
  66. (cd electron && node script/yarn test --enable-logging --runners remote)
  67. displayName: 'Run Electron remote tests'
  68. timeoutInMinutes: 20
  69. condition: succeededOrFailed()
  70. env:
  71. ELECTRON_DISABLE_SECURITY_WARNINGS: 1
  72. IGNORE_YARN_INSTALL_ERROR: 1
  73. ELECTRON_TEST_RESULTS_DIR: junit
  74. - bash: |
  75. cd src
  76. python electron/script/verify-ffmpeg.py --source-root "$PWD" --build-dir out/Default --ffmpeg-path out/ffmpeg
  77. displayName: Verify non proprietary ffmpeg
  78. timeoutInMinutes: 5
  79. condition: succeededOrFailed()
  80. env:
  81. TARGET_ARCH: arm64
  82. - bash: |
  83. cd src
  84. echo Verify cross arch snapshot
  85. python electron/script/verify-mksnapshot.py --source-root "$PWD" --build-dir out/Default --snapshot-files-dir $PWD/out/Default/cross-arch-snapshots
  86. displayName: Verify cross arch snapshot
  87. timeoutInMinutes: 5
  88. condition: succeededOrFailed()
  89. - task: PublishTestResults@2
  90. displayName: 'Publish Test Results'
  91. inputs:
  92. testResultsFiles: '*.xml'
  93. searchFolder: '$(System.DefaultWorkingDirectory)/src/junit/'
  94. condition: succeededOrFailed()
  95. - bash: killall Electron || echo "No Electron processes left running"
  96. displayName: 'Kill processes left running from last test run'
  97. condition: always()
  98. - bash: |
  99. rm -rf ~/Library/Application\ Support/Electron*
  100. rm -rf ~/Library/Application\ Support/electron*
  101. displayName: 'Delete user app data directories'
  102. condition: always()
  103. - task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
  104. displayName: 'Clean Agent Directories'
  105. condition: always()