version: 1.0.{build} build_cloud: electron-16 image: electron-16-vs2017 environment: DISABLE_CRASH_REPORTER_TESTS: true matrix: - TARGET_ARCH: ia32 - TARGET_ARCH: x64 build_script: - ps: >- if(($env:APPVEYOR_PULL_REQUEST_HEAD_REPO_NAME -split "/")[0] -eq ($env:APPVEYOR_REPO_NAME -split "/")[0]) { Write-warning "Skipping PR build for branch"; Exit-AppveyorBuild } else { Add-Path "$env:ProgramFiles (x86)\Windows Kits\10\Debuggers\x64" $env:path = "$env:ProgramFiles (x86)\Windows Kits\10\Debuggers\x64;$env:path" if($env:APPVEYOR_SCHEDULED_BUILD -eq 'True') { $env:RUN_RELEASE_BUILD = "1" } $Message = (git log --format=%B -n 1 HEAD) | Out-String if ((Test-Path Env:\RUN_RELEASE_BUILD)) { $env:ELECTRON_RELEASE = '1' Write-Output "release build triggered from api" } if ((Test-Path Env:\ELECTRON_RELEASE)) { Write-Output "Running release build" python script\bootstrap.py --target_arch=$env:TARGET_ARCH python script\build.py -c R python script\create-dist.py } else { Write-Output "Running debug build" python script\bootstrap.py --target_arch=$env:TARGET_ARCH --dev python script\build.py -c D } if ($? -ne 'True') { throw "Build failed with exit code $?" } else { "Build succeeded." } } test_script: - ps: >- if (Test-Path Env:\ELECTRON_RELEASE) { Write-Output "Skipping tests for release build" } else { Write-Output "Running tests for debug build" python script\test.py --ci --rebuild_native_modules if ($LASTEXITCODE -ne '0') { throw "Tests failed with exit code $LASTEXITCODE" } else { Write-Output "Tests succeeded." } python script\verify-ffmpeg.py if ($LASTEXITCODE -ne '0') { throw "Verify ffmpeg failed with exit code $LASTEXITCODE" } else { "Verify ffmpeg succeeded." } } artifacts: - path: test-results.xml name: test-results.xml deploy_script: - ps: >- if (Test-Path Env:\ELECTRON_RELEASE) { if (Test-Path Env:\RUN_RELEASE_BUILD) { Write-Output "Uploading Electron release distribution to s3" & python script\upload.py --upload_to_s3 } else { Write-Output "Uploading Electron release distribution to github releases" & python script\upload.py if (Test-Path Env:\AUTO_RELEASE) { node script\release.js --validateRelease --automaticRelease if ($? -eq 'True') { echo 'Release is ready to go; now running release' node script\release.js --automaticRelease if ($? -eq 'True') { echo 'Release successful, now publishing to npm' $npmfile = "$HOME\.npmrc" "//registry.npmjs.org/:_authToken=$env:ELECTRON_NPM_TOKEN" > $npmfile npm run publish-to-npm } } else { echo 'Release is not complete, skipping publish for now.' } } } } else { Write-Output "Skipping upload distribution because build is not for release" }