123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- steps:
- - task: CopyFiles@2
- displayName: 'Copy Files to: src/electron'
- inputs:
- TargetFolder: src/electron
- - bash: |
- cd src/electron
- node script/yarn.js install --frozen-lockfile
- displayName: 'Yarn install'
- - bash: |
- export ZIP_DEST=$PWD/src/out/Default
- echo "##vso[task.setvariable variable=ZIP_DEST]$ZIP_DEST"
- mkdir -p $ZIP_DEST
- cd src/electron
- node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=dist.zip --dest=$ZIP_DEST
- cd $ZIP_DEST
- unzip -o dist.zip
- xattr -cr Electron.app
- displayName: 'Download and unzip dist files for test'
- env:
- CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
- - bash: |
- export FFMPEG_ZIP_DEST=$PWD/src/out/ffmpeg
- mkdir -p $FFMPEG_ZIP_DEST
- cd src/electron
- node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=ffmpeg.zip --dest=$FFMPEG_ZIP_DEST
- cd $FFMPEG_ZIP_DEST
- unzip -o ffmpeg.zip
- displayName: 'Download and unzip ffmpeg for test'
- env:
- CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
- - bash: |
- export NODE_HEADERS_DEST=$PWD/src/out/Default/gen
- mkdir -p $NODE_HEADERS_DEST
- cd src/electron
- node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=node_headers.tar.gz --dest=$NODE_HEADERS_DEST
- cd $NODE_HEADERS_DEST
- tar xzf node_headers.tar.gz
- displayName: 'Download and untar node header files for test'
- env:
- CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
- - bash: |
- export CROSS_ARCH_SNAPSHOTS=$PWD/src/out/Default/cross-arch-snapshots
- mkdir -p $CROSS_ARCH_SNAPSHOTS
- cd src/electron
- node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=cross-arch-snapshots/snapshot_blob.bin --dest=$CROSS_ARCH_SNAPSHOTS
- node script/download-circleci-artifacts.js --buildNum=$CIRCLE_BUILD_NUM --name=cross-arch-snapshots/v8_context_snapshot.arm64.bin --dest=$CROSS_ARCH_SNAPSHOTS
- displayName: 'Download cross arch snapshot files'
- env:
- CIRCLE_TOKEN: $(CIRCLECI_TOKEN)
- - bash: |
- cd src
- export ELECTRON_OUT_DIR=Default
- export npm_config_arch=arm64
- (cd electron && node script/yarn test --enable-logging --runners main)
- displayName: 'Run Electron main tests'
- timeoutInMinutes: 20
- env:
- ELECTRON_DISABLE_SECURITY_WARNINGS: 1
- IGNORE_YARN_INSTALL_ERROR: 1
- ELECTRON_TEST_RESULTS_DIR: junit
- - bash: |
- cd src
- export ELECTRON_OUT_DIR=Default
- export npm_config_arch=arm64
- (cd electron && node script/yarn test --enable-logging --runners remote)
- displayName: 'Run Electron remote tests'
- timeoutInMinutes: 20
- condition: succeededOrFailed()
- env:
- 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
- condition: succeededOrFailed()
- env:
- TARGET_ARCH: arm64
- - bash: |
- cd src
- echo Verify cross arch snapshot
- 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
- condition: succeededOrFailed()
- - task: PublishTestResults@2
- displayName: 'Publish Test Results'
- inputs:
- testResultsFiles: '*.xml'
- searchFolder: '$(System.DefaultWorkingDirectory)/src/junit/'
- condition: succeededOrFailed()
- - bash: killall Electron || echo "No Electron processes left running"
- displayName: 'Kill processes left running from last test run'
- condition: always()
- - bash: |
- rm -rf ~/Library/Application\ Support/Electron*
- rm -rf ~/Library/Application\ Support/electron*
- displayName: 'Delete user app data directories'
- condition: always()
- - task: mspremier.PostBuildCleanup.PostBuildCleanup-task.PostBuildCleanup@3
- displayName: 'Clean Agent Directories'
- condition: always()
|