electron/appveyor-gn.yml
Charles Kerr e315e4d308 build: use electron-frameworks sccache (#14171)
* build: update-external-binaries fetches sccache

* build: add util.add_exec_bit in scripts/

* build: use util.add_exec_bit in create-dist

* build: use util.add_exec_bit in update-external-binaries

this is needed to work around a bug in python's zipfile module that doesn't preserve the exec bit

https://bugs.python.org/issue18262

* fix: linting errors

* build: vsts, circleci use patched sccache

* build: always look for the x64 sccache

as it's the only arch we have it on

* fix: windows-specific errors in updaste-external-binaries

* fix: tyop

* fix: set SCCACHE_BUCKET, SCCACHE_TWO_TIER on circleci

* fix: syntax error in circleci yaml

* fix: keep churning

* chore: add tracer to file downloader

* docs: add sccache instructions for GN builds

* build: pull down the darwin sccache on mas builds

* build: use gn sync verbosely on circleci and vsts

* docs: copyediting

* build: remove unnecessary cache-dir arg

* docs: fix shell quoting in gn build instructions

* fix: invoke gclient without -verbose in circleci

* refactor: remove debug tracer

* fix: invoke gclient without -verbose in appveyor

* fix: invoke gclient without -verbose in vsts

* fix: pull add_exec_bit from correct source

* fix: remove 'SCCACHE_TWO_TIER' from CI scripts

* refactor: remove SCCACHE_BUCKET from ci scripts

this environment variable will be set via the CI UI instead

* refactor: clarify log message

* fix: set SCCACHE_PATH correctly for Windows CI
2018-08-21 15:40:06 -04:00

52 lines
1.5 KiB
YAML

version: 1.0.{build}
branches:
except:
- /^release$|^release-\d-\d-x$/
build_cloud: libcc-20
image: libcc-20-vs2017-15.4.5
environment:
GIT_CACHE_PATH: C:\Users\electron\libcc_cache
DISABLE_CRASH_REPORTER_TESTS: true
ELECTRON_ENABLE_LOGGING: true
matrix:
- gn_args: debug
ELECTRON_SKIP_NATIVE_MODULE_TESTS: 1
- gn_args: testing
platform:
- x86
- x64
build_script:
- git config --global core.longpaths true
- cd ..
- md src
- ps: Move-Item $env:APPVEYOR_BUILD_FOLDER -Destination src\electron
- ps: $env:CHROMIUM_BUILDTOOLS_PATH="$pwd\src\buildtools"
- ps: $env:SCCACHE_PATH="$pwd\src\electron\external_binaries\sccache\sccache.exe"
- >-
gclient config
--name "src\electron"
--unmanaged
"https://github.com/electron/electron"
- gclient sync --with_branch_heads --with_tags
- cd src
- >-
%SCCACHE_PATH% -s
- gn gen out/Default "--args=import(\"//electron/build/args/%gn_args%.gn\") cc_wrapper=\"%CC_WRAPPER%\" "
- ninja -C out/Default electron:electron_app
- ninja -C out/Default electron:electron_dist_zip
- >-
%SCCACHE_PATH% -s
test_script:
- ninja -C out/Default electron/build/node:headers
- ps: $env:npm_config_nodedir="$pwd/out/Default/gen/node_headers"
- ps: $env:npm_config_msvs_version="2017"
- ps: Push-Location; cd electron/spec
- npm install
- ps: Pop-Location
- ./out/Default/electron.exe electron/spec --ci
# TODO(nornagon): verify-ffmpeg step
artifacts:
- path: test-results.xml
name: test-results.xml
- path: src/out/Default/dist.zip
name: dist.zip