2019-09-17 21:48:02 +03:00
version : 2.1
parameters :
upload-to-s3 :
type : string
default : '1'
2019-10-09 00:46:01 +03:00
2019-09-17 21:48:02 +03:00
run-lint :
type : boolean
default : true
run-build-linux :
type : boolean
default : true
run-build-mac :
type : boolean
default : true
run-linux-x64-publish :
type : boolean
default : false
run-linux-ia32-publish :
type : boolean
default : false
run-linux-arm-publish :
type : boolean
default : false
2019-10-09 00:46:01 +03:00
2019-09-17 21:48:02 +03:00
run-linux-arm64-publish :
type : boolean
default : false
2019-10-09 00:46:01 +03:00
2019-09-17 21:48:02 +03:00
run-osx-publish :
type : boolean
default : false
run-mas-publish :
type : boolean
default : false
2020-02-11 23:42:37 +03:00
run-linux-publish :
type : boolean
default : false
run-macos-publish :
type : boolean
default : false
2018-10-20 02:44:36 +03:00
# The config expects the following environment variables to be set:
# - "SLACK_WEBHOOK" Slack hook URL to send notifications.
#
# The publishing scripts expect access tokens to be defined as env vars,
# but those are not covered here.
#
# CircleCI docs on variables:
# https://circleci.com/docs/2.0/env-vars/
2018-09-15 01:12:30 +03:00
# Build machines configs.
2018-09-18 17:55:43 +03:00
docker-image : &docker-image
2018-09-15 01:12:30 +03:00
docker :
2020-01-31 21:36:00 +03:00
- image : electronjs/build:d09fd95029bd8c1c73069888231b29688ef385ed
2018-09-18 17:55:43 +03:00
2019-01-07 22:59:45 +03:00
machine-linux-medium : &machine-linux-medium
<< : *docker-image
resource_class : medium
2018-09-18 17:55:43 +03:00
2020-03-30 22:46:42 +03:00
machine-linux-xlarge : &machine-linux-xlarge
<< : *docker-image
resource_class : xlarge
2019-01-07 22:59:45 +03:00
machine-linux-2xlarge : &machine-linux-2xlarge
<< : *docker-image
2019-11-28 03:29:53 +03:00
resource_class : 2xlarge+
2018-09-15 01:12:30 +03:00
2019-01-07 22:59:45 +03:00
machine-mac : &machine-mac
macos :
2020-07-14 04:13:34 +03:00
xcode : "11.5.0"
2018-09-15 01:12:30 +03:00
2019-01-31 20:59:32 +03:00
machine-mac-large : &machine-mac-large
resource_class : large
macos :
2020-07-14 04:13:34 +03:00
xcode : "11.5.0"
2019-01-31 20:59:32 +03:00
2018-09-15 01:12:30 +03:00
# Build configurations options.
env-testing-build : &env-testing-build
GN_CONFIG : //electron/build/args/testing.gn
2019-05-29 19:40:02 +03:00
CHECK_DIST_MANIFEST : '1'
2018-09-15 01:12:30 +03:00
env-release-build : &env-release-build
GN_CONFIG : //electron/build/args/release.gn
2018-10-11 05:41:48 +03:00
STRIP_BINARIES : true
2019-01-31 20:59:32 +03:00
GENERATE_SYMBOLS : true
2019-12-11 20:42:57 +03:00
CHECK_DIST_MANIFEST : '1'
2018-09-15 01:12:30 +03:00
2018-10-05 23:06:52 +03:00
env-headless-testing : &env-headless-testing
DISPLAY : ':99.0'
2018-10-09 02:17:11 +03:00
env-stack-dumping : &env-stack-dumping
ELECTRON_ENABLE_STACK_DUMPING : '1'
2018-09-27 18:29:27 +03:00
env-browsertests : &env-browsertests
2018-10-22 23:12:19 +03:00
GN_CONFIG : //electron/build/args/native_tests.gn
BUILD_TARGET : electron/spec:chromium_browsertests
2018-10-02 01:50:52 +03:00
TESTS_CONFIG : src/electron/spec/configs/browsertests.yml
2018-09-27 18:29:27 +03:00
env-unittests : &env-unittests
2018-10-22 23:12:19 +03:00
GN_CONFIG : //electron/build/args/native_tests.gn
BUILD_TARGET : electron/spec:chromium_unittests
2018-10-02 01:50:52 +03:00
TESTS_CONFIG : src/electron/spec/configs/unittests.yml
2018-09-27 18:29:27 +03:00
2018-09-15 01:12:30 +03:00
# Build targets options.
env-ia32 : &env-ia32
GN_EXTRA_ARGS : 'target_cpu = "x86"'
NPM_CONFIG_ARCH : ia32
2018-09-29 07:13:17 +03:00
TARGET_ARCH : ia32
2018-09-15 01:12:30 +03:00
env-arm : &env-arm
GN_EXTRA_ARGS : 'target_cpu = "arm"'
MKSNAPSHOT_TOOLCHAIN : //build/toolchain/linux:clang_arm
2018-09-27 17:58:57 +03:00
BUILD_NATIVE_MKSNAPSHOT : 1
2018-09-29 08:32:48 +03:00
TARGET_ARCH : arm
2018-09-15 01:12:30 +03:00
env-arm64 : &env-arm64
GN_EXTRA_ARGS : 'target_cpu = "arm64" fatal_linker_warnings = false enable_linux_installer = false'
MKSNAPSHOT_TOOLCHAIN : //build/toolchain/linux:clang_arm64
2018-09-27 17:58:57 +03:00
BUILD_NATIVE_MKSNAPSHOT : 1
2018-09-29 08:32:48 +03:00
TARGET_ARCH : arm64
2018-09-15 01:12:30 +03:00
2018-09-17 19:44:02 +03:00
env-mas : &env-mas
GN_EXTRA_ARGS : 'is_mas_build = true'
2019-02-08 21:12:18 +03:00
MAS_BUILD : 'true'
2018-09-17 19:44:02 +03:00
2018-10-01 23:24:51 +03:00
# Misc build configuration options.
env-enable-sccache : &env-enable-sccache
USE_SCCACHE : true
env-send-slack-notifications : &env-send-slack-notifications
NOTIFY_SLACK : true
2020-02-04 02:43:46 +03:00
env-global : &env-global
ELECTRON_OUT_DIR : Default
2018-10-01 23:24:51 +03:00
2019-01-31 20:59:32 +03:00
env-linux-medium : &env-linux-medium
2020-02-04 02:43:46 +03:00
<< : *env-global
2019-01-31 20:59:32 +03:00
NUMBER_OF_NINJA_PROCESSES : 3
env-linux-2xlarge : &env-linux-2xlarge
2020-02-04 02:43:46 +03:00
<< : *env-global
2019-08-21 17:25:23 +03:00
NUMBER_OF_NINJA_PROCESSES : 34
2019-10-09 00:46:01 +03:00
2019-08-24 00:01:12 +03:00
env-linux-2xlarge-release : &env-linux-2xlarge-release
2020-02-04 02:43:46 +03:00
<< : *env-global
2019-08-24 00:01:12 +03:00
NUMBER_OF_NINJA_PROCESSES : 16
2019-01-31 20:59:32 +03:00
env-machine-mac : &env-machine-mac
2020-02-04 02:43:46 +03:00
<< : *env-global
2019-01-31 20:59:32 +03:00
NUMBER_OF_NINJA_PROCESSES : 6
env-mac-large : &env-mac-large
2020-02-04 02:43:46 +03:00
<< : *env-global
2019-08-21 17:25:23 +03:00
NUMBER_OF_NINJA_PROCESSES : 18
2019-01-31 20:59:32 +03:00
2019-08-24 00:01:12 +03:00
env-mac-large-release : &env-mac-large-release
2020-02-04 02:43:46 +03:00
<< : *env-global
2019-08-24 00:01:12 +03:00
NUMBER_OF_NINJA_PROCESSES : 8
2019-06-15 11:48:59 +03:00
env-ninja-status : &env-ninja-status
2019-06-19 17:03:06 +03:00
NINJA_STATUS : "[%r processes, %f/%t @ %o/s : %es] "
2019-06-15 11:48:59 +03:00
2019-06-20 04:10:04 +03:00
env-disable-run-as-node : &env-disable-run-as-node
GN_BUILDFLAG_ARGS : 'enable_run_as_node = false'
2019-11-19 17:36:16 +03:00
env-32bit-release : &env-32bit-release
# Set symbol level to 1 for 32 bit releases because of https://crbug.com/648948
GN_BUILDFLAG_ARGS : 'symbol_level = 1'
2019-11-28 03:29:53 +03:00
env-macos-build : &env-macos-build
# Disable pre-compiled headers to reduce out size, only useful for rebuilds
GN_BUILDFLAG_ARGS : 'enable_precompiled_headers = false'
2018-09-15 01:12:30 +03:00
# Individual (shared) steps.
step-maybe-notify-slack-failure : &step-maybe-notify-slack-failure
2018-07-05 17:59:47 +03:00
run :
2018-09-15 01:12:30 +03:00
name : Send a Slack notification on failure
2018-07-05 17:59:47 +03:00
command : |
2018-09-15 01:12:30 +03:00
if [ "$NOTIFY_SLACK" == "true" ]; then
2018-09-25 16:59:39 +03:00
export MESSAGE="Build failed for *<$CIRCLE_BUILD_URL|$CIRCLE_JOB>* nightly build from *$CIRCLE_BRANCH*."
2018-07-05 17:59:47 +03:00
curl -g -H "Content-Type: application/json" -X POST \
-d "{\"text\": \"$MESSAGE\", \"attachments\": [{\"color\": \"#FC5C3C\",\"title\": \"$CIRCLE_JOB nightly build results\",\"title_link\": \"$CIRCLE_BUILD_URL\"}]}" $SLACK_WEBHOOK
fi
when : on_fail
2018-09-15 01:12:30 +03:00
step-maybe-notify-slack-success : &step-maybe-notify-slack-success
2018-07-05 17:59:47 +03:00
run :
2018-09-15 01:12:30 +03:00
name : Send a Slack notification on success
2018-07-05 17:59:47 +03:00
command : |
2018-09-15 01:12:30 +03:00
if [ "$NOTIFY_SLACK" == "true" ]; then
2018-09-25 16:59:39 +03:00
export MESSAGE="Build succeeded for *<$CIRCLE_BUILD_URL|$CIRCLE_JOB>* nightly build from *$CIRCLE_BRANCH*."
2018-07-05 17:59:47 +03:00
curl -g -H "Content-Type: application/json" -X POST \
-d "{\"text\": \"$MESSAGE\", \"attachments\": [{\"color\": \"good\",\"title\": \"$CIRCLE_JOB nightly build results\",\"title_link\": \"$CIRCLE_BUILD_URL\"}]}" $SLACK_WEBHOOK
fi
when : on_success
2018-09-17 19:44:02 +03:00
step-checkout-electron : &step-checkout-electron
checkout :
path : src/electron
step-depot-tools-get : &step-depot-tools-get
run :
name : Get depot tools
command : |
git clone --depth=1 https://chromium.googlesource.com/chromium/tools/depot_tools.git
step-depot-tools-add-to-path : &step-depot-tools-add-to-path
2018-09-15 01:12:30 +03:00
run :
name : Add depot tools to PATH
command : echo 'export PATH="$PATH:'"$PWD"'/depot_tools"' >> $BASH_ENV
2018-09-17 19:44:02 +03:00
step-gclient-sync : &step-gclient-sync
run :
name : Gclient sync
command : |
2019-04-23 01:36:59 +03:00
# If we did not restore a complete sync then we need to sync for realz
if [ ! -s "src/electron/.circle-sync-done" ]; then
gclient config \
--name "src/electron" \
--unmanaged \
$GCLIENT_EXTRA_ARGS \
"$CIRCLE_REPOSITORY_URL"
2020-04-08 18:59:14 +03:00
ELECTRON_USE_THREE_WAY_MERGE_FOR_PATCHES=1 gclient sync --with_branch_heads --with_tags
# Re-export all the patches to check if there were changes.
python src/electron/script/export_all_patches.py src/electron/patches/config.json
cd src/electron
2020-04-09 19:40:46 +03:00
git update-index --refresh || true
2020-04-08 18:59:14 +03:00
if ! git diff-index --quiet HEAD --; then
# There are changes to the patches. Make a git commit with the updated patches
git add patches
GIT_COMMITTER_NAME="Electron Bot" GIT_COMMITTER_EMAIL="anonymous@electronjs.org" git commit -m "update patches" --author="Electron Bot <anonymous@electronjs.org>"
# Export it
mkdir -p ../../patches
git format-patch -1 --stdout --keep-subject --no-stat --full-index > ../../patches/update-patches.patch
echo
echo "======================================================================"
echo "There were changes to the patches when applying."
echo "Check the CI artifacts for a patch you can apply to fix it."
echo "======================================================================"
exit 1
fi
2019-04-23 01:36:59 +03:00
fi
2018-09-17 19:44:02 +03:00
2018-09-15 01:12:30 +03:00
step-setup-env-for-build : &step-setup-env-for-build
run :
name : Setup Environment Variables
command : |
# To find `gn` executable.
echo 'export CHROMIUM_BUILDTOOLS_PATH="'"$PWD"'/src/buildtools"' >> $BASH_ENV
2018-10-01 23:24:51 +03:00
if [ "$USE_SCCACHE" == "true" ]; then
2018-09-27 17:58:57 +03:00
# https://github.com/mozilla/sccache
SCCACHE_PATH="$PWD/src/electron/external_binaries/sccache"
echo 'export SCCACHE_PATH="'"$SCCACHE_PATH"'"' >> $BASH_ENV
2018-10-05 23:06:52 +03:00
if [ "$CIRCLE_PR_NUMBER" != "" ]; then
#if building a fork set readonly access to sccache
2019-10-09 00:46:01 +03:00
echo 'export SCCACHE_BUCKET="electronjs-sccache-ci"' >> $BASH_ENV
2018-10-05 23:06:52 +03:00
echo 'export SCCACHE_TWO_TIER=true' >> $BASH_ENV
fi
2018-09-27 17:58:57 +03:00
fi
2018-09-15 01:12:30 +03:00
2020-02-06 20:56:18 +03:00
step-setup-goma-for-build : &step-setup-goma-for-build
run :
name : Setup Goma
command : |
echo 'export USE_GOMA=true' >> $BASH_ENV
if [ "`uname`" == "Linux" ]; then
echo 'export NUMBER_OF_NINJA_PROCESSES=300' >> $BASH_ENV
else
echo 'export NUMBER_OF_NINJA_PROCESSES=25' >> $BASH_ENV
fi
if [ ! -z "$RAW_GOMA_AUTH" ]; then
echo $RAW_GOMA_AUTH > ~/.goma_oauth2_config
fi
git clone https://github.com/electron/build-tools.git
cd build-tools
npm install
mkdir third_party
node -e "require('./src/utils/goma.js').downloadAndPrepare()"
node -e "require('./src/utils/goma.js').ensure()"
echo 'export GN_GOMA_FILE='`node -e "console.log(require('./src/utils/goma.js').gnFilePath)"` >> $BASH_ENV
echo 'export LOCAL_GOMA_DIR='`node -e "console.log(require('./src/utils/goma.js').dir)"` >> $BASH_ENV
cd ..
2019-02-07 00:16:11 +03:00
step-restore-brew-cache : &step-restore-brew-cache
restore_cache :
paths :
- /usr/local/Homebrew
keys :
- v1-brew-cache-{{ arch }}
2019-08-21 21:52:17 +03:00
step-save-brew-cache : &step-save-brew-cache
save_cache :
paths :
- /usr/local/Homebrew
key : v1-brew-cache-{{ arch }}
name : Persisting brew cache
2019-05-01 22:31:02 +03:00
step-get-more-space-on-mac : &step-get-more-space-on-mac
run :
name : Free up space on MacOS
command : |
if [ "`uname`" == "Darwin" ]; then
2020-07-17 00:20:42 +03:00
sudo mkdir -p $TMPDIR/del-target
tmpify() {
sudo mv $1 $TMPDIR/del-target/$(echo $1|shasum -a 256|head -n1|cut -d " " -f1)
}
tmpify /Library/Developer/CoreSimulator
tmpify $(xcode-select -p)/Platforms/AppleTVOS.platform
tmpify $(xcode-select -p)/Platforms/iPhoneOS.platform
tmpify $(xcode-select -p)/Platforms/WatchOS.platform
tmpify $(xcode-select -p)/Platforms/WatchSimulator.platform
tmpify $(xcode-select -p)/Platforms/AppleTVSimulator.platform
tmpify $(xcode-select -p)/Platforms/iPhoneSimulator.platform
tmpify ~/.rubies
tmpify ~/Library/Caches/Homebrew
tmpify /usr/local/Homebrew
sudo rm -rf $TMPDIR/del-target
2019-05-01 22:31:02 +03:00
fi
2020-07-17 00:20:42 +03:00
background : true
2019-05-01 22:31:02 +03:00
2020-03-04 00:35:05 +03:00
# On macOS delete all .git directories under src/ expect for
# third_party/angle/ because of build time generation of file
# gen/angle/commit.h depends on third_party/angle/.git/HEAD
# https://chromium-review.googlesource.com/c/angle/angle/+/2074924
# TODO: maybe better to always leave out */.git/HEAD file for all targets ?
2019-05-01 22:31:02 +03:00
step-delete-git-directories : &step-delete-git-directories
run :
2019-11-20 18:42:38 +03:00
name : Delete all .git directories under src on MacOS to free space
2019-05-08 17:27:03 +03:00
command : |
if [ "`uname`" == "Darwin" ]; then
2019-11-20 18:42:38 +03:00
cd src
2020-03-04 00:35:05 +03:00
( find . -type d -name ".git" -not -path "./third_party/angle/*" ) | xargs rm -rf
2019-05-08 17:27:03 +03:00
fi
2019-05-01 22:31:02 +03:00
2019-06-06 02:30:39 +03:00
# On macOS the yarn install command during gclient sync was run on a linux
2019-02-07 00:16:11 +03:00
# machine and therefore installed a slightly different set of dependencies
2019-06-06 02:30:39 +03:00
# Notably "fsevents" is a macOS only dependency, we rerun yarn install once
2019-02-07 00:16:11 +03:00
# we are on a macOS machine to get the correct state
step-install-npm-deps-on-mac : &step-install-npm-deps-on-mac
run :
2019-06-06 02:30:39 +03:00
name : Install node_modules on MacOS
2019-02-07 00:16:11 +03:00
command : |
if [ "`uname`" == "Darwin" ]; then
cd src/electron
2019-06-06 02:30:39 +03:00
node script/yarn install
2019-02-07 00:16:11 +03:00
fi
# This step handles the differences between the linux "gclient sync"
# and the expected state on macOS
step-fix-sync-on-mac : &step-fix-sync-on-mac
run :
name : Fix Sync on macOS
command : |
if [ "`uname`" == "Darwin" ]; then
# Fix Clang Install (wrong binary)
rm -rf src/third_party/llvm-build
python src/tools/clang/scripts/update.py
# Fix Framework Header Installs (symlinks not retained)
rm -rf src/electron/external_binaries
python src/electron/script/update-external-binaries.py
fi
2019-03-30 03:32:52 +03:00
step-install-signing-cert-on-mac : &step-install-signing-cert-on-mac
run :
name : Import and trust self-signed codesigning cert on MacOS
command : |
if [ "`uname`" == "Darwin" ]; then
cd src/electron
2020-03-19 04:00:42 +03:00
./script/codesign/generate-identity.sh
2019-03-30 03:32:52 +03:00
fi
2019-01-31 20:59:32 +03:00
step-install-gnutar-on-mac : &step-install-gnutar-on-mac
run :
name : Install gnu-tar on macos
command : |
if [ "`uname`" == "Darwin" ]; then
brew update
brew install gnu-tar
ln -fs /usr/local/bin/gtar /usr/local/bin/tar
fi
2018-10-04 18:50:46 +03:00
step-gn-gen-default : &step-gn-gen-default
2018-09-15 01:12:30 +03:00
run :
2018-10-04 18:50:46 +03:00
name : Default GN gen
2018-09-15 01:12:30 +03:00
command : |
cd src
2020-01-23 20:47:38 +03:00
if [ "$USE_GOMA" == "true" ]; then
2020-02-06 20:56:18 +03:00
gn gen out/Default --args="import(\"$GN_CONFIG\") import(\"$GN_GOMA_FILE\") $GN_EXTRA_ARGS $GN_BUILDFLAG_ARGS"
2020-01-23 20:47:38 +03:00
else
gn gen out/Default --args="import(\"$GN_CONFIG\") cc_wrapper=\"$SCCACHE_PATH\" $GN_EXTRA_ARGS $GN_BUILDFLAG_ARGS"
fi
2018-09-15 01:12:30 +03:00
2019-03-05 08:08:55 +03:00
step-gn-check : &step-gn-check
run :
name : GN check
command : |
cd src
gn check out/Default //electron:electron_lib
gn check out/Default //electron:electron_app
2019-04-03 01:38:16 +03:00
gn check out/Default //electron:manifests
2019-06-19 23:46:59 +03:00
gn check out/Default //electron/shell/common/api:mojo
2019-10-31 23:11:51 +03:00
# Check the hunspell filenames
node electron/script/gen-hunspell-filenames.js --check
2019-03-05 08:08:55 +03:00
2018-09-15 01:12:30 +03:00
step-electron-build : &step-electron-build
run :
name : Electron build
2019-01-22 19:45:57 +03:00
no_output_timeout : 30m
2018-09-15 01:12:30 +03:00
command : |
2019-11-28 03:29:53 +03:00
# On arm platforms we generate a cross-arch ffmpeg that ninja does not seem
# to realize is not correct / should be rebuilt. We delete it here so it is
# rebuilt
if [ "$TRIGGER_ARM_TEST" == "true" ]; then
rm -f src/out/Default/libffmpeg.so
fi
2018-09-15 01:12:30 +03:00
cd src
2019-01-31 20:59:32 +03:00
ninja -C out/Default electron -j $NUMBER_OF_NINJA_PROCESSES
2020-06-17 00:19:57 +03:00
node electron/script/check-symlinks.js
2018-09-15 01:12:30 +03:00
2019-10-03 23:21:30 +03:00
step-native-unittests-build : &step-native-unittests-build
2019-10-09 00:46:01 +03:00
run :
2019-10-03 23:21:30 +03:00
name : Build native test targets
no_output_timeout : 30m
command : |
cd src
ninja -C out/Default shell_browser_ui_unittests -j $NUMBER_OF_NINJA_PROCESSES
2018-10-11 05:41:48 +03:00
step-maybe-electron-dist-strip : &step-maybe-electron-dist-strip
2018-10-09 23:19:05 +03:00
run :
name : Strip electron binaries
command : |
2019-11-21 04:21:44 +03:00
if [ "$STRIP_BINARIES" == "true" ] && [ "`uname`" == "Linux" ]; then
if [ x"$TARGET_ARCH" == x ]; then
target_cpu=x64
elif [ "$TARGET_ARCH" == "ia32" ]; then
target_cpu=x86
else
target_cpu="$TARGET_ARCH"
fi
2018-10-11 05:41:48 +03:00
cd src
2019-11-21 04:21:44 +03:00
electron/script/copy-debug-symbols.py --target-cpu="$target_cpu" --out-dir=out/Default/debug --compress
2020-02-08 01:05:04 +03:00
electron/script/strip-binaries.py --target-cpu="$target_cpu"
2019-11-21 04:21:44 +03:00
electron/script/add-debug-link.py --target-cpu="$target_cpu" --debug-dir=out/Default/debug
2018-10-11 05:41:48 +03:00
fi
2018-10-09 23:19:05 +03:00
2018-09-15 01:12:30 +03:00
step-electron-dist-build : &step-electron-dist-build
run :
name : Build dist.zip
command : |
cd src
2019-09-16 19:31:08 +03:00
if [ "$SKIP_DIST_ZIP" != "1" ]; then
ninja -C out/Default electron:electron_dist_zip
if [ "$CHECK_DIST_MANIFEST" == "1" ]; then
if [ "`uname`" == "Darwin" ]; then
target_os=mac
2019-05-29 19:40:02 +03:00
target_cpu=x64
2019-09-16 19:31:08 +03:00
if [ x"$MAS_BUILD" == x"true" ]; then
target_os=mac_mas
fi
elif [ "`uname`" == "Linux" ]; then
target_os=linux
if [ x"$TARGET_ARCH" == x ]; then
target_cpu=x64
elif [ "$TARGET_ARCH" == "ia32" ]; then
target_cpu=x86
else
target_cpu="$TARGET_ARCH"
fi
2019-05-29 19:40:02 +03:00
else
2019-09-16 19:31:08 +03:00
echo "Unknown system: `uname`"
exit 1
2019-05-29 19:40:02 +03:00
fi
2019-09-16 19:31:08 +03:00
electron/script/zip_manifests/check-zip-manifest.py out/Default/dist.zip electron/script/zip_manifests/dist_zip.$target_os.$target_cpu.manifest
2019-05-29 19:40:02 +03:00
fi
fi
2018-09-15 01:12:30 +03:00
step-electron-dist-store : &step-electron-dist-store
store_artifacts :
path : src/out/Default/dist.zip
destination : dist.zip
2020-02-07 21:52:36 +03:00
step-electron-maybe-chromedriver-gn-gen : &step-electron-maybe-chromedriver-gn-gen
2020-02-05 10:02:02 +03:00
run :
name : chromedriver GN gen
command : |
cd src
2020-02-07 21:52:36 +03:00
if [ "$TARGET_ARCH" == "arm" ] || [ "$TARGET_ARCH" == "arm64" ]; then
if [ "$USE_GOMA" == "true" ]; then
2020-03-04 10:17:39 +03:00
gn gen out/chromedriver --args="import(\"$GN_CONFIG\") import(\"$GN_GOMA_FILE\") is_component_ffmpeg=false proprietary_codecs=false $GN_EXTRA_ARGS $GN_BUILDFLAG_ARGS"
2020-02-07 21:52:36 +03:00
else
gn gen out/chromedriver --args="import(\"$GN_CONFIG\") cc_wrapper=\"$SCCACHE_PATH\" is_component_ffmpeg=false proprietary_codecs=false $GN_EXTRA_ARGS $GN_BUILDFLAG_ARGS"
fi
2020-02-05 10:02:02 +03:00
fi
2018-09-20 01:42:42 +03:00
step-electron-chromedriver-build : &step-electron-chromedriver-build
run :
name : Build chromedriver.zip
command : |
cd src
2020-02-07 21:52:36 +03:00
if [ "$TARGET_ARCH" == "arm" ] || [ "$TARGET_ARCH" == "arm64" ]; then
export CHROMEDRIVER_DIR="out/chromedriver"
else
export CHROMEDRIVER_DIR="out/Default"
fi
ninja -C $CHROMEDRIVER_DIR electron:electron_chromedriver -j $NUMBER_OF_NINJA_PROCESSES
2020-02-08 01:05:04 +03:00
if [ "`uname`" == "Linux" ]; then
electron/script/strip-binaries.py --target-cpu="$TARGET_ARCH" --file $PWD/$CHROMEDRIVER_DIR/chromedriver
fi
2020-02-07 21:52:36 +03:00
ninja -C $CHROMEDRIVER_DIR electron:electron_chromedriver_zip
if [ "$TARGET_ARCH" == "arm" ] || [ "$TARGET_ARCH" == "arm64" ]; then
cp out/chromedriver/chromedriver.zip out/Default
fi
2018-09-20 01:42:42 +03:00
step-electron-chromedriver-store : &step-electron-chromedriver-store
store_artifacts :
2020-02-07 21:52:36 +03:00
path : src/out/Default/chromedriver.zip
2018-09-20 01:42:42 +03:00
destination : chromedriver.zip
2018-09-15 01:12:30 +03:00
step-nodejs-headers-build : &step-nodejs-headers-build
run :
name : Build Node.js headers
command : |
cd src
2019-01-07 22:59:45 +03:00
ninja -C out/Default third_party/electron_node:headers
2018-09-15 01:12:30 +03:00
2018-10-04 19:01:16 +03:00
step-nodejs-headers-store : &step-nodejs-headers-store
store_artifacts :
path : src/out/Default/gen/node_headers.tar.gz
destination : node_headers.tar.gz
2019-10-03 23:21:30 +03:00
step-native-unittests-store : &step-native-unittests-store
store_artifacts :
path : src/out/Default/shell_browser_ui_unittests
destination : shell_browser_ui_unittests
2018-09-29 05:33:56 +03:00
step-electron-publish : &step-electron-publish
run :
name : Publish Electron Dist
command : |
2019-12-19 01:54:52 +03:00
if [ "`uname`" == "Darwin" ]; then
rm -rf src/out/Default/obj
fi
2020-02-07 21:52:36 +03:00
2018-09-29 05:33:56 +03:00
cd src/electron
2018-10-01 23:24:51 +03:00
if [ "$UPLOAD_TO_S3" == "1" ]; then
echo 'Uploading Electron release distribution to S3'
2019-06-24 20:18:04 +03:00
script/release/uploaders/upload.py --upload_to_s3
2018-10-01 23:24:51 +03:00
else
echo 'Uploading Electron release distribution to Github releases'
2019-06-24 20:18:04 +03:00
script/release/uploaders/upload.py
2018-09-29 05:33:56 +03:00
fi
2018-09-15 01:12:30 +03:00
step-persist-data-for-tests : &step-persist-data-for-tests
persist_to_workspace :
root : .
paths :
# Build artifacts
- src/out/Default/dist.zip
2018-11-09 17:54:17 +03:00
- src/out/Default/mksnapshot.zip
2020-02-07 21:52:36 +03:00
- src/out/Default/chromedriver.zip
2019-10-03 23:21:30 +03:00
- src/out/Default/shell_browser_ui_unittests
2018-09-15 01:12:30 +03:00
- src/out/Default/gen/node_headers
2019-01-31 20:59:32 +03:00
- src/out/ffmpeg/ffmpeg.zip
2019-09-16 19:31:08 +03:00
- src/electron
- src/third_party/electron_node
- src/third_party/nan
2018-09-15 01:12:30 +03:00
step-electron-dist-unzip : &step-electron-dist-unzip
run :
name : Unzip dist.zip
command : |
cd src/out/Default
# -o overwrite files WITHOUT prompting
# TODO(alexeykuzmin): Remove '-o' when it's no longer needed.
unzip -o dist.zip
2019-01-31 20:59:32 +03:00
step-ffmpeg-unzip : &step-ffmpeg-unzip
run :
name : Unzip ffmpeg.zip
command : |
cd src/out/ffmpeg
unzip -o ffmpeg.zip
2018-11-09 17:54:17 +03:00
step-mksnapshot-unzip : &step-mksnapshot-unzip
run :
name : Unzip mksnapshot.zip
command : |
cd src/out/Default
unzip -o mksnapshot.zip
2020-02-03 21:31:14 +03:00
step-chromedriver-unzip : &step-chromedriver-unzip
run :
name : Unzip chromedriver.zip
command : |
2020-02-07 21:52:36 +03:00
cd src/out/Default
2020-02-03 21:31:14 +03:00
unzip -o chromedriver.zip
2018-09-15 01:12:30 +03:00
step-ffmpeg-gn-gen : &step-ffmpeg-gn-gen
run :
name : ffmpeg GN gen
command : |
cd src
2020-01-23 20:47:38 +03:00
if [ "$USE_GOMA" == "true" ]; then
2020-03-04 10:17:39 +03:00
gn gen out/ffmpeg --args="import(\"//electron/build/args/ffmpeg.gn\") import(\"$GN_GOMA_FILE\") $GN_EXTRA_ARGS"
2020-01-23 20:47:38 +03:00
else
gn gen out/ffmpeg --args="import(\"//electron/build/args/ffmpeg.gn\") cc_wrapper=\"$SCCACHE_PATH\" $GN_EXTRA_ARGS"
fi
2018-09-15 01:12:30 +03:00
step-ffmpeg-build : &step-ffmpeg-build
run :
name : Non proprietary ffmpeg build
command : |
cd src
2019-01-31 20:59:32 +03:00
ninja -C out/ffmpeg electron:electron_ffmpeg_zip -j $NUMBER_OF_NINJA_PROCESSES
2018-09-15 01:12:30 +03:00
step-verify-ffmpeg : &step-verify-ffmpeg
run :
name : Verify ffmpeg
command : |
cd src
python electron/script/verify-ffmpeg.py --source-root "$PWD" --build-dir out/Default --ffmpeg-path out/ffmpeg
2018-09-27 17:58:57 +03:00
step-ffmpeg-store : &step-ffmpeg-store
2018-09-27 18:05:11 +03:00
store_artifacts :
path : src/out/ffmpeg/ffmpeg.zip
destination : ffmpeg.zip
2018-09-27 17:58:57 +03:00
2018-11-09 17:54:17 +03:00
step-verify-mksnapshot : &step-verify-mksnapshot
run :
name : Verify mksnapshot
command : |
cd src
python electron/script/verify-mksnapshot.py --source-root "$PWD" --build-dir out/Default
2020-02-03 21:31:14 +03:00
step-verify-chromedriver : &step-verify-chromedriver
run :
name : Verify ChromeDriver
command : |
cd src
2020-02-07 21:52:36 +03:00
python electron/script/verify-chromedriver.py --source-root "$PWD" --build-dir out/Default
2020-02-03 21:31:14 +03:00
2018-09-21 12:43:28 +03:00
step-setup-linux-for-headless-testing : &step-setup-linux-for-headless-testing
2018-09-15 01:12:30 +03:00
run :
name : Setup for headless testing
2018-09-17 19:44:02 +03:00
command : |
2018-09-21 12:43:28 +03:00
if [ "`uname`" != "Darwin" ]; then
sh -e /etc/init.d/xvfb start
fi
2018-09-15 01:12:30 +03:00
step-show-sccache-stats : &step-show-sccache-stats
run :
2020-01-23 20:47:38 +03:00
name : Check sccache/goma stats after build
2018-10-01 23:24:51 +03:00
command : |
if [ "$SCCACHE_PATH" != "" ]; then
$SCCACHE_PATH -s
fi
2020-01-23 20:47:38 +03:00
if [ "$USE_GOMA" == "true" ]; then
2020-02-06 20:56:18 +03:00
$LOCAL_GOMA_DIR/goma_ctl.py stat
2020-01-23 20:47:38 +03:00
fi
2018-09-15 01:12:30 +03:00
2018-09-25 04:48:49 +03:00
step-mksnapshot-build : &step-mksnapshot-build
run :
name : mksnapshot build
command : |
cd src
2019-11-28 03:29:53 +03:00
ninja -C out/Default electron:electron_mksnapshot -j $NUMBER_OF_NINJA_PROCESSES
2020-02-04 21:10:11 +03:00
gn desc out/Default v8:run_mksnapshot_default args > out/Default/mksnapshot_args
2018-10-09 23:19:05 +03:00
if [ "`uname`" != "Darwin" ]; then
if [ "$TARGET_ARCH" == "arm" ]; then
2020-02-08 01:05:04 +03:00
electron/script/strip-binaries.py --file $PWD/out/Default/clang_x86_v8_arm/mksnapshot
2020-05-12 21:52:56 +03:00
electron/script/strip-binaries.py --file $PWD/out/Default/clang_x86_v8_arm/v8_context_snapshot_generator
2018-10-09 23:19:05 +03:00
elif [ "$TARGET_ARCH" == "arm64" ]; then
2020-02-08 01:05:04 +03:00
electron/script/strip-binaries.py --file $PWD/out/Default/clang_x64_v8_arm64/mksnapshot
2020-05-12 21:52:56 +03:00
electron/script/strip-binaries.py --file $PWD/out/Default/clang_x64_v8_arm64/v8_context_snapshot_generator
2018-10-09 23:19:05 +03:00
else
2020-02-08 01:05:04 +03:00
electron/script/strip-binaries.py --file $PWD/out/Default/mksnapshot
electron/script/strip-binaries.py --file $PWD/out/Default/v8_context_snapshot_generator
2018-10-09 23:19:05 +03:00
fi
fi
2019-09-16 19:31:08 +03:00
if [ "$SKIP_DIST_ZIP" != "1" ]; then
ninja -C out/Default electron:electron_mksnapshot_zip -j $NUMBER_OF_NINJA_PROCESSES
2020-02-04 21:10:11 +03:00
(cd out/Default; zip mksnapshot.zip mksnapshot_args gen/v8/embedded.S)
2019-09-16 19:31:08 +03:00
fi
2018-09-25 04:48:49 +03:00
step-mksnapshot-store : &step-mksnapshot-store
store_artifacts :
path : src/out/Default/mksnapshot.zip
destination : mksnapshot.zip
2019-10-31 23:11:51 +03:00
step-hunspell-build : &step-hunspell-build
run :
name : hunspell build
command : |
cd src
if [ "$SKIP_DIST_ZIP" != "1" ]; then
ninja -C out/Default electron:hunspell_dictionaries_zip -j $NUMBER_OF_NINJA_PROCESSES
fi
step-hunspell-store : &step-hunspell-store
store_artifacts :
path : src/out/Default/hunspell_dictionaries.zip
destination : hunspell_dictionaries.zip
2019-01-31 20:59:32 +03:00
step-maybe-generate-breakpad-symbols : &step-maybe-generate-breakpad-symbols
2018-10-13 05:02:52 +03:00
run :
name : Generate breakpad symbols
2020-07-01 18:06:45 +03:00
no_output_timeout : 30m
2018-10-13 05:02:52 +03:00
command : |
2019-01-31 20:59:32 +03:00
if [ "$GENERATE_SYMBOLS" == "true" ]; then
cd src
2019-07-05 20:38:30 +03:00
ninja -C out/Default electron:electron_symbols
2020-03-10 01:26:45 +03:00
cd out/Default/breakpad_symbols
find . -name \*.sym -print0 | xargs -0 npx @sentry/cli@1.51.1 difutil bundle-sources
2019-01-31 20:59:32 +03:00
fi
2018-10-13 05:02:52 +03:00
2019-01-31 20:59:32 +03:00
step-maybe-zip-symbols : &step-maybe-zip-symbols
2018-10-13 05:02:52 +03:00
run :
name : Zip symbols
command : |
cd src
export BUILD_PATH="$PWD/out/Default"
2019-09-16 19:31:08 +03:00
ninja -C out/Default electron:licenses
ninja -C out/Default electron:electron_version
2018-10-13 05:02:52 +03:00
electron/script/zip-symbols.py -b $BUILD_PATH
2018-09-27 17:58:57 +03:00
2019-10-14 17:58:05 +03:00
step-symbols-store : &step-symbols-store
store_artifacts :
path : src/out/Default/symbols.zip
destination : symbols.zip
2019-03-28 18:05:43 +03:00
step-maybe-cross-arch-snapshot : &step-maybe-cross-arch-snapshot
2018-09-27 17:58:57 +03:00
run :
2019-03-28 18:05:43 +03:00
name : Generate cross arch snapshot (arm/arm64)
2018-09-27 17:58:57 +03:00
command : |
2019-03-28 18:05:43 +03:00
if [ "$TRIGGER_ARM_TEST" == "true" ] && [ -z "$CIRCLE_PR_NUMBER" ]; then
2018-10-09 23:19:05 +03:00
cd src
2019-03-28 18:05:43 +03:00
if [ "$TARGET_ARCH" == "arm" ]; then
export MKSNAPSHOT_PATH="clang_x86_v8_arm"
elif [ "$TARGET_ARCH" == "arm64" ]; then
export MKSNAPSHOT_PATH="clang_x64_v8_arm64"
fi
cp "out/Default/$MKSNAPSHOT_PATH/mksnapshot" out/Default
cp "out/Default/$MKSNAPSHOT_PATH/libffmpeg.so" out/Default
cp "out/Default/$MKSNAPSHOT_PATH/v8_context_snapshot_generator" out/Default
python electron/script/verify-mksnapshot.py --source-root "$PWD" --build-dir out/Default --create-snapshot-only
mkdir cross-arch-snapshots
cp out/Default-mksnapshot-test/*.bin cross-arch-snapshots
2018-10-09 23:19:05 +03:00
fi
2019-03-28 18:05:43 +03:00
step-maybe-cross-arch-snapshot-store : &step-maybe-cross-arch-snapshot-store
2018-09-27 17:58:57 +03:00
store_artifacts :
2019-03-28 18:05:43 +03:00
path : src/cross-arch-snapshots
destination : cross-arch-snapshots
2018-09-26 21:56:05 +03:00
2018-10-04 19:01:16 +03:00
step-maybe-trigger-arm-test : &step-maybe-trigger-arm-test
run :
name : Trigger an arm test on VSTS if applicable
command : |
cd src
# Only run for non-fork prs
if [ "$TRIGGER_ARM_TEST" == "true" ] && [ -z "$CIRCLE_PR_NUMBER" ]; then
#Trigger VSTS job, passing along CircleCI job number and branch to build
echo "Triggering electron-$TARGET_ARCH-testing build on VSTS"
2019-06-24 20:18:04 +03:00
node electron/script/release/ci-release-build.js --job=electron-$TARGET_ARCH-testing --ci=VSTS --armTest --circleBuildNum=$CIRCLE_BUILD_NUM $CIRCLE_BRANCH
2018-10-04 19:01:16 +03:00
fi
2019-01-31 20:59:32 +03:00
step-maybe-generate-typescript-defs : &step-maybe-generate-typescript-defs
run :
name : Generate type declarations
command : |
if [ "`uname`" == "Darwin" ]; then
cd src/electron
2019-06-06 02:30:39 +03:00
node script/yarn create-typescript-definitions
2019-01-31 20:59:32 +03:00
fi
2019-03-20 05:37:52 +03:00
step-fix-known-hosts-linux : &step-fix-known-hosts-linux
run :
name : Fix Known Hosts on Linux
command : |
if [ "`uname`" == "Linux" ]; then
./src/electron/.circleci/fix-known-hosts.sh
fi
2019-06-15 11:48:59 +03:00
step-ninja-summary : &step-ninja-summary
run :
name : Print ninja summary
command : |
python depot_tools/post_build_ninja_summary.py -C src/out/Default
2019-11-07 03:13:39 +03:00
step-ninja-report : &step-ninja-report
store_artifacts :
path : src/out/Default/.ninja_log
destination : ninja_log
2019-08-21 21:52:17 +03:00
# Checkout Steps
step-generate-deps-hash : &step-generate-deps-hash
run :
name : Generate DEPS Hash
2019-11-28 03:29:53 +03:00
command : node src/electron/script/generate-deps-hash.js && cat src/electron/.depshash-target
2019-08-21 21:52:17 +03:00
step-touch-sync-done : &step-touch-sync-done
run :
name : Touch Sync Done
command : touch src/electron/.circle-sync-done
# Restore exact src cache based on the hash of DEPS and patches/*
# If no cache is matched EXACTLY then the .circle-sync-done file is empty
# If a cache is matched EXACTLY then the .circle-sync-done file contains "done"
step-maybe-restore-src-cache : &step-maybe-restore-src-cache
restore_cache :
keys :
2020-07-14 04:13:34 +03:00
- v8-src-cache-{{ checksum "src/electron/.depshash" }}
2019-08-21 21:52:17 +03:00
name : Restoring src cache
2020-07-17 00:16:02 +03:00
step-maybe-restore-src-cache-marker : &step-maybe-restore-src-cache-marker
restore_cache :
keys :
- v1-src-cache-marker-{{ checksum "src/electron/.depshash" }}
name : Restoring src cache marker
2019-08-21 21:52:17 +03:00
# Restore exact or closest git cache based on the hash of DEPS and .circle-sync-done
# If the src cache was restored above then this will match an empty cache
# If the src cache was not restored above then this will match a close git cache
step-maybe-restore-git-cache : &step-maybe-restore-git-cache
restore_cache :
paths :
- ~/.gclient-cache
keys :
2019-11-28 03:29:53 +03:00
- v2-gclient-cache-{{ checksum "src/electron/.circle-sync-done" }}-{{ checksum "src/electron/DEPS" }}
- v2-gclient-cache-{{ checksum "src/electron/.circle-sync-done" }}
2019-08-21 21:52:17 +03:00
name : Conditionally restoring git cache
2019-11-28 03:29:53 +03:00
step-restore-out-cache : &step-restore-out-cache
restore_cache :
paths :
- ./src/out/Default
keys :
2020-07-03 05:42:40 +03:00
- v9-out-cache-{{ checksum "src/electron/.depshash" }}-{{ checksum "src/electron/.depshash-target" }}
2019-11-28 03:29:53 +03:00
name : Restoring out cache
2019-08-21 21:52:17 +03:00
step-set-git-cache-path : &step-set-git-cache-path
run :
name : Set GIT_CACHE_PATH to make gclient to use the cache
command : |
# CircleCI does not support interpolation when setting environment variables.
# https://circleci.com/docs/2.0/env-vars/#setting-an-environment-variable-in-a-shell-command
echo 'export GIT_CACHE_PATH="$HOME/.gclient-cache"' >> $BASH_ENV
# Persist the git cache based on the hash of DEPS and .circle-sync-done
# If the src cache was restored above then this will persist an empty cache
step-save-git-cache : &step-save-git-cache
save_cache :
paths :
- ~/.gclient-cache
2019-11-28 03:29:53 +03:00
key : v2-gclient-cache-{{ checksum "src/electron/.circle-sync-done" }}-{{ checksum "src/electron/DEPS" }}
2019-08-21 21:52:17 +03:00
name : Persisting git cache
2019-11-28 03:29:53 +03:00
step-save-out-cache : &step-save-out-cache
save_cache :
paths :
- ./src/out/Default
2020-07-03 05:42:40 +03:00
key : v9-out-cache-{{ checksum "src/electron/.depshash" }}-{{ checksum "src/electron/.depshash-target" }}
2019-11-28 03:29:53 +03:00
name : Persisting out cache
2019-08-21 21:52:17 +03:00
step-run-electron-only-hooks : &step-run-electron-only-hooks
run :
name : Run Electron Only Hooks
command : gclient runhooks --spec="solutions=[{'name':'src/electron','url':None,'deps_file':'DEPS','custom_vars':{'process_deps':False},'managed':False}]"
step-generate-deps-hash-cleanly : &step-generate-deps-hash-cleanly
run :
name : Generate DEPS Hash
2019-11-28 03:29:53 +03:00
command : (cd src/electron && git checkout .) && node src/electron/script/generate-deps-hash.js && cat src/electron/.depshash-target
2019-08-21 21:52:17 +03:00
# Mark the sync as done for future cache saving
step-mark-sync-done : &step-mark-sync-done
run :
name : Mark Sync Done
command : echo DONE > src/electron/.circle-sync-done
# Minimize the size of the cache
step-minimize-workspace-size-from-checkout : &step-minimize-workspace-size-from-checkout
run :
name : Remove some unused data to avoid storing it in the workspace/cache
command : |
rm -rf src/android_webview
rm -rf src/ios
rm -rf src/third_party/blink/web_tests
rm -rf src/third_party/blink/perf_tests
rm -rf src/third_party/WebKit/LayoutTests
# Save the src cache based on the deps hash
step-save-src-cache : &step-save-src-cache
save_cache :
paths :
2020-07-14 04:13:34 +03:00
- /var/portal
key : v8-src-cache-{{ checksum "/var/portal/src/electron/.depshash" }}
2019-08-21 21:52:17 +03:00
name : Persisting src cache
2020-07-17 00:16:02 +03:00
step-make-src-cache-marker : &step-make-src-cache-marker
run :
name : Making src cache marker
command : touch .src-cache-marker
step-save-src-cache-marker : &step-save-src-cache-marker
save_cache :
paths :
- .src-cache-marker
key : v1-src-cache-marker-{{ checksum "/var/portal/src/electron/.depshash" }}
2019-08-21 21:52:17 +03:00
2019-10-24 02:36:26 +03:00
# Check for doc only change
step-check-for-doc-only-change : &step-check-for-doc-only-change
run :
name : Check if commit is doc only change
command : |
cd src/electron
node script/yarn install --frozen-lockfile
2020-02-07 20:58:47 +03:00
if node script/doc-only-change.js --prNumber=$CIRCLE_PR_NUMBER --prURL=$CIRCLE_PULL_REQUEST --prBranch=$CIRCLE_BRANCH; then
2019-10-24 02:36:26 +03:00
#PR is doc only change; save file with value true to indicate doc only change
echo "true" > .skip-ci-build
else
#PR is not a doc only change; create empty file to indicate check has been done
touch .skip-ci-build
fi
step-persist-doc-only-change : &step-persist-doc-only-change
persist_to_workspace :
root : .
paths :
- src/electron/.skip-ci-build
step-maybe-early-exit-doc-only-change : &step-maybe-early-exit-doc-only-change
run :
name : Shortcircuit build if doc only change
command : |
if [ -s src/electron/.skip-ci-build ]; then
circleci-agent step halt
fi
step-maybe-early-exit-no-doc-change : &step-maybe-early-exit-no-doc-change
run :
name : Shortcircuit job if change is not doc only
command : |
if [ ! -s src/electron/.skip-ci-build ]; then
circleci-agent step halt
fi
step-ts-compile : &step-ts-compile
run :
name : Run TS/JS compile on doc only change
command : |
cd src
ninja -C out/Default electron:default_app_js -j $NUMBER_OF_NINJA_PROCESSES
2020-02-07 20:58:47 +03:00
ninja -C out/Default electron:electron_js2c -j $NUMBER_OF_NINJA_PROCESSES
2019-10-24 02:36:26 +03:00
2018-09-15 01:12:30 +03:00
# Lists of steps.
2019-02-06 23:53:25 +03:00
steps-lint : &steps-lint
steps :
- *step-checkout-electron
- run :
name : Setup third_party Depot Tools
command : |
# "depot_tools" has to be checkout into "//third_party/depot_tools" so pylint.py can a "pylintrc" file.
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git src/third_party/depot_tools
echo 'export PATH="$PATH:'"$PWD"'/src/third_party/depot_tools"' >> $BASH_ENV
- run :
name : Download GN Binary
command : |
chromium_revision="$(grep -A1 chromium_version src/electron/DEPS | tr -d '\n' | cut -d\' -f4)"
2019-03-22 02:35:29 +03:00
gn_version="$(curl -sL "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/DEPS?format=TEXT" | base64 -d | grep gn_version | head -n1 | cut -d\' -f4)"
2019-02-06 23:53:25 +03:00
2019-09-17 21:48:02 +03:00
cipd ensure -ensure-file - -root . \<<-CIPD
2019-07-25 20:44:28 +03:00
\$ServiceURL https://chrome-infra-packages.appspot.com/
@Subdir src/buildtools/linux64
gn/gn/linux-amd64 $gn_version
CIPD
2019-02-06 23:53:25 +03:00
2019-07-09 11:40:26 +03:00
echo 'export CHROMIUM_BUILDTOOLS_PATH="'"$PWD"'/src/buildtools"' >> $BASH_ENV
- run :
name : Download clang-format Binary
command : |
chromium_revision="$(grep -A1 chromium_version src/electron/DEPS | tr -d '\n' | cut -d\' -f4)"
sha1_path='buildtools/linux64/clang-format.sha1'
curl -sL "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/${sha1_path}?format=TEXT" | base64 -d > "src/${sha1_path}"
download_from_google_storage.py --no_resume --no_auth --bucket chromium-clang-format -s "src/${sha1_path}"
2019-02-06 23:53:25 +03:00
- run :
name : Run Lint
command : |
# gn.py tries to find a gclient root folder starting from the current dir.
# When it fails and returns "None" path, the whole script fails. Let's "fix" it.
touch .gclient
# Another option would be to checkout "buildtools" inside the Electron checkout,
# but then we would lint its contents (at least gn format), and it doesn't pass it.
cd src/electron
2019-06-19 00:42:42 +03:00
node script/yarn install --frozen-lockfile
2019-06-06 02:30:39 +03:00
node script/yarn lint
2019-02-06 23:53:25 +03:00
2019-08-21 21:52:17 +03:00
steps-checkout-and-save-cache : &steps-checkout-and-save-cache
steps :
- *step-checkout-electron
2019-10-24 02:36:26 +03:00
- *step-check-for-doc-only-change
- *step-persist-doc-only-change
- *step-maybe-early-exit-doc-only-change
2019-08-21 21:52:17 +03:00
- *step-depot-tools-get
- *step-depot-tools-add-to-path
- *step-restore-brew-cache
- *step-get-more-space-on-mac
- *step-install-gnutar-on-mac
- *step-generate-deps-hash
- *step-touch-sync-done
2020-07-17 00:16:02 +03:00
- maybe-restore-portaled-src-cache :
halt-if-successful : true
2019-08-21 21:52:17 +03:00
- *step-maybe-restore-git-cache
- *step-set-git-cache-path
# This sync call only runs if .circle-sync-done is an EMPTY file
- *step-gclient-sync
2020-04-08 18:59:14 +03:00
- store_artifacts :
path : patches
2019-08-21 21:52:17 +03:00
- *step-save-git-cache
# These next few steps reset Electron to the correct commit regardless of which cache was restored
- run :
name : Wipe Electron
command : rm -rf src/electron
- *step-checkout-electron
- *step-run-electron-only-hooks
- *step-generate-deps-hash-cleanly
- *step-mark-sync-done
- *step-minimize-workspace-size-from-checkout
2019-11-28 03:29:53 +03:00
- *step-delete-git-directories
- run :
name : Move src folder to the cross-OS portal
command : |
2020-07-14 04:13:34 +03:00
sudo mkdir -p /var/portal
sudo chown -R $(id -u):$(id -g) /var/portal
mv ./src /var/portal
2019-08-21 21:52:17 +03:00
- *step-save-src-cache
2020-07-17 00:16:02 +03:00
- *step-make-src-cache-marker
- *step-save-src-cache-marker
2019-08-21 21:52:17 +03:00
2019-03-05 08:08:55 +03:00
steps-electron-gn-check : &steps-electron-gn-check
steps :
- attach_workspace :
at : .
2019-10-24 02:36:26 +03:00
- *step-maybe-early-exit-doc-only-change
2019-03-05 08:08:55 +03:00
- *step-depot-tools-add-to-path
- *step-setup-env-for-build
- *step-gn-gen-default
- *step-gn-check
2019-10-24 02:36:26 +03:00
steps-electron-ts-compile-for-doc-change : &steps-electron-ts-compile-for-doc-change
steps :
# Checkout - Copied ffrom steps-checkout
- *step-checkout-electron
- *step-check-for-doc-only-change
- *step-maybe-early-exit-no-doc-change
- *step-depot-tools-get
- *step-depot-tools-add-to-path
- *step-restore-brew-cache
- *step-install-gnutar-on-mac
2020-07-15 04:34:38 +03:00
- *step-get-more-space-on-mac
2019-10-24 02:36:26 +03:00
- *step-generate-deps-hash
- *step-touch-sync-done
2019-11-28 03:29:53 +03:00
- maybe-restore-portaled-src-cache
2019-10-24 02:36:26 +03:00
- *step-maybe-restore-git-cache
- *step-set-git-cache-path
# This sync call only runs if .circle-sync-done is an EMPTY file
- *step-gclient-sync
# These next few steps reset Electron to the correct commit regardless of which cache was restored
- run :
name : Wipe Electron
command : rm -rf src/electron
- *step-checkout-electron
- *step-run-electron-only-hooks
- *step-generate-deps-hash-cleanly
- *step-mark-sync-done
- *step-minimize-workspace-size-from-checkout
- *step-depot-tools-add-to-path
- *step-setup-env-for-build
- *step-restore-brew-cache
- *step-get-more-space-on-mac
- *step-install-npm-deps-on-mac
- *step-fix-sync-on-mac
- *step-gn-gen-default
#Compile ts/js to verify doc change didn't break anything
- *step-ts-compile
2018-10-04 18:50:46 +03:00
steps-chromedriver-build : &steps-chromedriver-build
steps :
- attach_workspace :
at : .
- *step-depot-tools-add-to-path
- *step-setup-env-for-build
2019-02-12 13:44:52 +03:00
- *step-fix-sync-on-mac
2018-10-04 18:50:46 +03:00
2020-02-07 21:52:36 +03:00
- *step-electron-maybe-chromedriver-gn-gen
2018-10-04 18:50:46 +03:00
- *step-electron-chromedriver-build
- *step-electron-chromedriver-store
2018-10-06 02:15:38 +03:00
- *step-maybe-notify-slack-failure
2018-09-18 13:55:46 +03:00
steps-native-tests : &steps-native-tests
steps :
- attach_workspace :
at : .
2018-09-20 02:02:12 +03:00
- *step-depot-tools-add-to-path
- *step-setup-env-for-build
2018-10-04 18:50:46 +03:00
- *step-gn-gen-default
2018-09-27 18:29:27 +03:00
2018-09-24 16:44:18 +03:00
- run :
2018-09-27 18:29:27 +03:00
name : Build tests
2018-09-24 16:44:18 +03:00
command : |
cd src
2019-01-07 22:59:45 +03:00
ninja -C out/Default $BUILD_TARGET
2018-09-27 18:29:27 +03:00
- *step-show-sccache-stats
- *step-setup-linux-for-headless-testing
2018-09-24 16:44:18 +03:00
- run :
2018-09-27 18:29:27 +03:00
name : Run tests
2018-09-24 16:44:18 +03:00
command : |
2018-09-27 18:29:27 +03:00
mkdir test_results
python src/electron/script/native-tests.py run \
--config $TESTS_CONFIG \
--tests-dir src/out/Default \
2018-10-22 23:12:19 +03:00
--output-dir test_results \
$TESTS_ARGS
2018-09-27 18:29:27 +03:00
2018-09-24 16:44:18 +03:00
- store_artifacts :
2018-09-27 18:29:27 +03:00
path : test_results
destination : test_results # Put it in the root folder.
2018-09-24 16:44:18 +03:00
- store_test_results :
2018-09-27 18:29:27 +03:00
path : test_results
2018-09-18 13:55:46 +03:00
2018-09-19 15:53:22 +03:00
steps-verify-ffmpeg : &steps-verify-ffmpeg
2018-09-15 01:12:30 +03:00
steps :
- attach_workspace :
at : .
2018-09-20 02:02:12 +03:00
- *step-depot-tools-add-to-path
- *step-electron-dist-unzip
2019-01-31 20:59:32 +03:00
- *step-ffmpeg-unzip
2018-09-21 12:43:28 +03:00
- *step-setup-linux-for-headless-testing
2018-09-15 01:12:30 +03:00
2018-09-20 02:02:12 +03:00
- *step-verify-ffmpeg
2018-10-06 02:15:38 +03:00
- *step-maybe-notify-slack-failure
2018-09-15 01:12:30 +03:00
2020-02-03 21:31:14 +03:00
steps-verify-chromedriver : &steps-verify-chromedriver
steps :
- attach_workspace :
at : .
- *step-depot-tools-add-to-path
- *step-electron-dist-unzip
- *step-chromedriver-unzip
- *step-setup-linux-for-headless-testing
- *step-verify-chromedriver
- *step-maybe-notify-slack-failure
2018-09-19 15:53:22 +03:00
steps-tests : &steps-tests
steps :
- attach_workspace :
at : .
2019-10-24 02:36:26 +03:00
- *step-maybe-early-exit-doc-only-change
2018-09-19 15:53:22 +03:00
- *step-depot-tools-add-to-path
- *step-electron-dist-unzip
2018-11-09 17:54:17 +03:00
- *step-mksnapshot-unzip
2020-02-03 21:31:14 +03:00
- *step-chromedriver-unzip
2018-09-21 12:43:28 +03:00
- *step-setup-linux-for-headless-testing
2019-02-07 00:16:11 +03:00
- *step-restore-brew-cache
2019-03-20 05:37:52 +03:00
- *step-fix-known-hosts-linux
2019-03-30 03:32:52 +03:00
- *step-install-signing-cert-on-mac
2018-09-19 15:53:22 +03:00
2018-09-21 12:43:28 +03:00
- run :
name : Run Electron tests
environment :
MOCHA_REPORTER : mocha-multi-reporters
2019-07-09 23:56:46 +03:00
ELECTRON_TEST_RESULTS_DIR : junit
2018-09-21 12:43:28 +03:00
MOCHA_MULTI_REPORTERS : mocha-junit-reporter, tap
ELECTRON_DISABLE_SECURITY_WARNINGS : 1
command : |
cd src
2020-05-19 19:29:36 +03:00
(cd electron && node script/yarn test --runners=main --trace-uncaught --enable-logging --files $(circleci tests glob spec-main/*-spec.ts | circleci tests split))
(cd electron && node script/yarn test --runners=remote --trace-uncaught --enable-logging --files $(circleci tests glob spec/*-spec.js | circleci tests split))
2018-10-01 17:59:55 +03:00
- run :
name : Check test results existence
command : |
2019-07-09 23:56:46 +03:00
cd src
# Check if test results exist and are not empty.
if [ ! -s "junit/test-results-remote.xml" ]; then
2019-03-11 01:38:44 +03:00
exit 1
fi
2019-07-09 23:56:46 +03:00
if [ ! -s "junit/test-results-main.xml" ]; then
2018-10-01 17:59:55 +03:00
exit 1
fi
2018-09-21 12:43:28 +03:00
- store_test_results :
path : src/junit
2018-09-15 01:12:30 +03:00
2018-11-09 17:54:17 +03:00
- *step-verify-mksnapshot
2020-02-03 21:31:14 +03:00
- *step-verify-chromedriver
2018-11-09 17:54:17 +03:00
2018-10-06 02:15:38 +03:00
- *step-maybe-notify-slack-failure
2019-05-29 22:38:17 +03:00
steps-test-nan : &steps-test-nan
steps :
- attach_workspace :
at : .
2019-10-24 02:36:26 +03:00
- *step-maybe-early-exit-doc-only-change
2019-05-29 22:38:17 +03:00
- *step-depot-tools-add-to-path
- *step-electron-dist-unzip
- *step-setup-linux-for-headless-testing
- *step-fix-known-hosts-linux
- run :
name : Run Nan Tests
command : |
cd src
node electron/script/nan-spec-runner.js
2019-07-23 21:40:06 +03:00
steps-test-node : &steps-test-node
steps :
- attach_workspace :
at : .
2019-10-24 02:36:26 +03:00
- *step-maybe-early-exit-doc-only-change
2019-07-23 21:40:06 +03:00
- *step-depot-tools-add-to-path
- *step-electron-dist-unzip
- *step-setup-linux-for-headless-testing
- *step-fix-known-hosts-linux
- run :
name : Run Node Tests
command : |
cd src
2020-02-21 23:19:25 +03:00
node electron/script/node-spec-runner.js --default --jUnitDir=junit
2019-07-23 23:00:02 +03:00
- store_test_results :
path : src/junit
2019-07-23 21:40:06 +03:00
2018-10-04 18:50:46 +03:00
chromium-upgrade-branches : &chromium-upgrade-branches
/chromium\-upgrade\/[0-9]+/
2019-11-28 03:29:53 +03:00
# Command Aliases
commands :
maybe-restore-portaled-src-cache :
2020-07-17 00:16:02 +03:00
parameters :
halt-if-successful :
type : boolean
default : false
2019-11-28 03:29:53 +03:00
steps :
- run :
name : Prepare for cross-OS sync restore
command : |
2020-07-14 04:13:34 +03:00
sudo mkdir -p /var/portal
sudo chown -R $(id -u):$(id -g) /var/portal
2020-07-17 00:16:02 +03:00
- when :
condition : << parameters.halt-if-successful >>
steps :
- *step-maybe-restore-src-cache-marker
- run :
name : Halt the job early if the src cache exists
command : |
if [ -f ".src-cache-marker" ]; then
circleci-agent step halt
fi
2019-11-28 03:29:53 +03:00
- *step-maybe-restore-src-cache
- run :
name : Fix the src cache restore point on macOS
command : |
2020-07-14 04:13:34 +03:00
if [ -d "/var/portal/src" ]; then
2019-11-28 03:29:53 +03:00
echo Relocating Cache
rm -rf src
2020-07-14 04:13:34 +03:00
mv /var/portal/src ./
2019-11-28 03:29:53 +03:00
fi
checkout-from-cache :
steps :
- *step-checkout-electron
- *step-maybe-early-exit-doc-only-change
- *step-depot-tools-get
- *step-depot-tools-add-to-path
- *step-generate-deps-hash
- maybe-restore-portaled-src-cache
- run :
name : Ensure src checkout worked
command : |
if [ ! -d "src/third_party/blink" ]; then
echo src cache was not restored for some reason, idk what happened here...
exit 1
fi
- run :
name : Wipe Electron
command : rm -rf src/electron
- *step-checkout-electron
- *step-run-electron-only-hooks
- *step-generate-deps-hash-cleanly
electron-build :
parameters :
attach :
type : boolean
default : false
persist :
type : boolean
default : true
persist-checkout :
type : boolean
default : false
checkout :
type : boolean
default : true
checkout-and-assume-cache :
type : boolean
default : false
build :
type : boolean
default : true
2020-01-23 20:47:38 +03:00
use-out-cache :
type : boolean
default : true
2020-02-11 23:42:37 +03:00
restore-src-cache :
type : boolean
default : true
preserve-vendor-dirs :
type : boolean
default : false
2019-11-28 03:29:53 +03:00
steps :
- when :
condition : << parameters.attach >>
steps :
- attach_workspace :
at : .
- *step-restore-brew-cache
- *step-install-gnutar-on-mac
2020-02-06 01:15:51 +03:00
- *step-save-brew-cache
2019-11-28 03:29:53 +03:00
- when :
condition : << parameters.checkout-and-assume-cache >>
steps :
- checkout-from-cache
- when :
condition : << parameters.checkout >>
steps :
# Checkout - Copied ffrom steps-checkout
- *step-checkout-electron
- *step-check-for-doc-only-change
- *step-persist-doc-only-change
- *step-maybe-early-exit-doc-only-change
- *step-depot-tools-get
- *step-depot-tools-add-to-path
- *step-get-more-space-on-mac
- *step-generate-deps-hash
- *step-touch-sync-done
2020-02-11 23:42:37 +03:00
- when :
condition : << parameters.restore-src-cache >>
steps :
- maybe-restore-portaled-src-cache
2019-11-28 03:29:53 +03:00
- *step-maybe-restore-git-cache
- *step-set-git-cache-path
# This sync call only runs if .circle-sync-done is an EMPTY file
- *step-gclient-sync
2020-04-08 18:59:14 +03:00
- store_artifacts :
path : patches
2019-11-28 03:29:53 +03:00
# These next few steps reset Electron to the correct commit regardless of which cache was restored
2020-02-11 23:42:37 +03:00
- when :
condition : << parameters.preserve-vendor-dirs >>
steps :
- run :
name : Preserve vendor dirs for release
command : |
mv src/electron/vendor/boto .
mv src/electron/vendor/requests .
2019-11-28 03:29:53 +03:00
- run :
name : Wipe Electron
command : rm -rf src/electron
- *step-checkout-electron
- *step-run-electron-only-hooks
2020-02-11 23:42:37 +03:00
- when :
condition : << parameters.preserve-vendor-dirs >>
steps :
- run :
name : Preserve vendor dirs for release
command : |
rm -rf src/electron/vendor/boto
rm -rf src/electron/vendor/requests
mv boto src/electron/vendor
mv requests src/electron/vendor/requests
2019-11-28 03:29:53 +03:00
- *step-generate-deps-hash-cleanly
- *step-mark-sync-done
- *step-minimize-workspace-size-from-checkout
- when :
condition : << parameters.persist-checkout >>
steps :
- persist_to_workspace :
root : .
paths :
- depot_tools
- src
- when :
condition : << parameters.build >>
steps :
- *step-depot-tools-add-to-path
- *step-setup-env-for-build
2020-02-06 20:56:18 +03:00
- *step-setup-goma-for-build
2019-11-28 03:29:53 +03:00
- *step-get-more-space-on-mac
- *step-fix-sync-on-mac
- *step-delete-git-directories
# Electron app
2020-01-23 20:47:38 +03:00
- when :
condition : << parameters.use-out-cache >>
steps :
- *step-restore-out-cache
2019-11-28 03:29:53 +03:00
- *step-gn-gen-default
- *step-electron-build
- *step-ninja-summary
- *step-ninja-report
- *step-maybe-electron-dist-strip
- *step-electron-dist-build
- *step-electron-dist-store
# Native test targets
- *step-native-unittests-build
- *step-native-unittests-store
# Node.js headers
- *step-nodejs-headers-build
- *step-nodejs-headers-store
- *step-show-sccache-stats
# mksnapshot
- *step-mksnapshot-build
- *step-mksnapshot-store
- *step-maybe-cross-arch-snapshot
- *step-maybe-cross-arch-snapshot-store
2020-02-03 21:31:14 +03:00
# chromedriver
2020-02-07 21:52:36 +03:00
- *step-electron-maybe-chromedriver-gn-gen
2020-02-03 21:31:14 +03:00
- *step-electron-chromedriver-build
- *step-electron-chromedriver-store
2019-11-28 03:29:53 +03:00
# ffmpeg
- *step-ffmpeg-gn-gen
- *step-ffmpeg-build
- *step-ffmpeg-store
# hunspell
- *step-hunspell-build
- *step-hunspell-store
# Save all data needed for a further tests run.
- when :
condition : << parameters.persist >>
steps :
- *step-persist-data-for-tests
- when :
condition : << parameters.build >>
steps :
- *step-maybe-generate-breakpad-symbols
- *step-maybe-zip-symbols
- *step-symbols-store
- when :
condition : << parameters.build >>
steps :
- run :
name : Remove the big things on macOS, this seems to be better on average
command : |
if [ "`uname`" == "Darwin" ]; then
mkdir -p src/out/Default
cd src/out/Default
find . -type f -size +50M -delete
mkdir -p gen/electron
cd gen/electron
# These files do not seem to like being in a cache, let us remove them
find . -type f -name '*_pkg_info' -delete
fi
2020-01-23 20:47:38 +03:00
- when :
condition : << parameters.use-out-cache >>
steps :
- *step-save-out-cache
2019-11-28 03:29:53 +03:00
2020-02-11 23:42:37 +03:00
# Trigger tests on arm hardware if needed
- *step-maybe-trigger-arm-test
2019-11-28 03:29:53 +03:00
2020-02-11 23:42:37 +03:00
- *step-maybe-notify-slack-failure
electron-publish :
parameters :
attach :
type : boolean
default : false
checkout :
type : boolean
default : true
steps :
- when :
condition : << parameters.attach >>
steps :
- attach_workspace :
at : .
- when :
condition : << parameters.checkout >>
steps :
- *step-depot-tools-get
- *step-depot-tools-add-to-path
- *step-restore-brew-cache
- *step-get-more-space-on-mac
- when :
condition : << parameters.checkout >>
steps :
- *step-checkout-electron
- *step-gclient-sync
- *step-delete-git-directories
- *step-minimize-workspace-size-from-checkout
- *step-fix-sync-on-mac
- *step-setup-env-for-build
- *step-gn-gen-default
# Electron app
- *step-electron-build
- *step-show-sccache-stats
- *step-maybe-generate-breakpad-symbols
- *step-maybe-electron-dist-strip
- *step-electron-dist-build
- *step-electron-dist-store
- *step-maybe-zip-symbols
- *step-symbols-store
# mksnapshot
- *step-mksnapshot-build
- *step-mksnapshot-store
# chromedriver
- *step-electron-maybe-chromedriver-gn-gen
- *step-electron-chromedriver-build
- *step-electron-chromedriver-store
# Node.js headers
- *step-nodejs-headers-build
- *step-nodejs-headers-store
# ffmpeg
- *step-ffmpeg-gn-gen
- *step-ffmpeg-build
- *step-ffmpeg-store
# hunspell
- *step-hunspell-build
- *step-hunspell-store
# typescript defs
- *step-maybe-generate-typescript-defs
# Publish
- *step-electron-publish
2019-11-28 03:29:53 +03:00
2018-09-15 01:12:30 +03:00
# List of all jobs.
2017-09-13 16:48:19 +03:00
jobs :
2019-02-06 23:53:25 +03:00
# Layer 0: Lint. Standalone.
lint :
<< : *machine-linux-medium
environment :
<< : *env-linux-medium
<< : *steps-lint
2019-10-24 02:36:26 +03:00
ts-compile-doc-change :
<< : *machine-linux-medium
environment :
<< : *env-linux-medium
<< : *env-testing-build
<< : *steps-electron-ts-compile-for-doc-change
2018-09-15 01:12:30 +03:00
# Layer 1: Checkout.
2020-02-11 23:42:37 +03:00
linux-checkout :
<< : *machine-linux-2xlarge
environment :
<< : *env-linux-2xlarge
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True --custom-var=checkout_boto=True --custom-var=checkout_requests=True'
steps :
- electron-build :
persist : false
build : false
checkout : true
persist-checkout : true
restore-src-cache : false
preserve-vendor-dirs : true
2019-08-21 21:52:17 +03:00
linux-checkout-fast :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-08-17 02:28:01 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-2xlarge
2018-10-03 22:05:05 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
2019-11-28 03:29:53 +03:00
steps :
- electron-build :
persist : false
build : false
checkout : true
persist-checkout : true
2019-08-21 21:52:17 +03:00
linux-checkout-and-save-cache :
<< : *machine-linux-2xlarge
environment :
<< : *env-linux-2xlarge
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
<< : *steps-checkout-and-save-cache
2018-07-11 21:01:15 +03:00
2018-11-05 18:19:00 +03:00
linux-checkout-for-native-tests :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-11-05 18:19:00 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-2xlarge
2018-11-05 18:19:00 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_pyyaml=True'
2019-11-28 03:29:53 +03:00
steps :
- electron-build :
persist : false
build : false
checkout : true
persist-checkout : true
2018-10-04 18:50:46 +03:00
2018-11-05 18:19:00 +03:00
linux-checkout-for-native-tests-with-no-patches :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-10-22 23:12:19 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-2xlarge
2018-11-05 18:19:00 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=apply_patches=False --custom-var=checkout_pyyaml=True'
2019-11-28 03:29:53 +03:00
steps :
- electron-build :
persist : false
build : false
checkout : true
persist-checkout : true
2019-08-21 21:52:17 +03:00
2020-02-11 23:42:37 +03:00
mac-checkout :
<< : *machine-linux-2xlarge
environment :
<< : *env-linux-2xlarge
<< : *env-testing-build
<< : *env-macos-build
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_mac=True --custom-var=host_os=mac --custom-var=checkout_boto=True --custom-var=checkout_requests=True'
steps :
- electron-build :
persist : false
build : false
checkout : true
persist-checkout : true
restore-src-cache : false
preserve-vendor-dirs : true
2019-08-21 21:52:17 +03:00
mac-checkout-fast :
<< : *machine-linux-2xlarge
environment :
<< : *env-linux-2xlarge
2019-11-28 03:29:53 +03:00
<< : *env-testing-build
<< : *env-macos-build
2019-08-21 21:52:17 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_mac=True --custom-var=host_os=mac'
2019-11-28 03:29:53 +03:00
steps :
- electron-build :
persist : false
build : false
checkout : true
persist-checkout : true
2018-10-22 23:12:19 +03:00
2019-08-21 21:52:17 +03:00
mac-checkout-and-save-cache :
2019-02-07 00:16:11 +03:00
<< : *machine-linux-2xlarge
2019-01-31 20:59:32 +03:00
environment :
2019-02-07 00:16:11 +03:00
<< : *env-linux-2xlarge
2019-11-28 03:29:53 +03:00
<< : *env-testing-build
<< : *env-macos-build
2019-02-07 00:16:11 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_mac=True --custom-var=host_os=mac'
2019-08-21 21:52:17 +03:00
<< : *steps-checkout-and-save-cache
2019-01-31 20:59:32 +03:00
2018-09-15 01:12:30 +03:00
# Layer 2: Builds.
linux-x64-testing :
2020-03-30 22:46:42 +03:00
<< : *machine-linux-xlarge
2018-08-01 02:25:51 +03:00
environment :
2020-03-30 22:46:42 +03:00
<< : *env-global
2018-09-15 01:12:30 +03:00
<< : *env-testing-build
2019-06-15 11:48:59 +03:00
<< : *env-ninja-status
2019-09-16 19:31:08 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
2019-11-28 03:29:53 +03:00
steps :
- electron-build :
persist : true
checkout : true
2020-01-23 20:47:38 +03:00
use-out-cache : false
2018-09-15 01:12:30 +03:00
2019-06-20 04:10:04 +03:00
linux-x64-testing-no-run-as-node :
<< : *machine-linux-2xlarge
environment :
<< : *env-linux-2xlarge
<< : *env-testing-build
<< : *env-ninja-status
<< : *env-disable-run-as-node
2019-09-16 19:31:08 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
2019-11-28 03:29:53 +03:00
steps :
- electron-build :
persist : false
checkout : true
2020-01-23 20:47:38 +03:00
use-out-cache : false
2019-06-20 04:10:04 +03:00
2019-03-05 08:08:55 +03:00
linux-x64-testing-gn-check :
<< : *machine-linux-medium
environment :
<< : *env-linux-medium
<< : *env-testing-build
<< : *steps-electron-gn-check
2018-10-04 18:50:46 +03:00
linux-x64-chromedriver :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-medium
2018-10-04 18:50:46 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
2018-10-04 18:50:46 +03:00
<< : *env-release-build
2018-10-06 02:15:38 +03:00
<< : *env-send-slack-notifications
2018-10-04 18:50:46 +03:00
<< : *steps-chromedriver-build
2018-09-15 01:12:30 +03:00
linux-x64-release :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-08-17 02:28:01 +03:00
environment :
2019-09-19 19:37:54 +03:00
<< : *env-linux-2xlarge-release
2018-09-15 01:12:30 +03:00
<< : *env-release-build
2018-10-01 23:24:51 +03:00
<< : *env-send-slack-notifications
2019-06-15 11:48:59 +03:00
<< : *env-ninja-status
2020-02-06 20:56:18 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
steps :
- electron-build :
persist : true
checkout : true
2018-08-01 02:25:51 +03:00
2018-09-27 17:58:57 +03:00
linux-x64-publish :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-09-27 17:58:57 +03:00
environment :
2019-08-24 00:01:12 +03:00
<< : *env-linux-2xlarge-release
2018-10-05 03:20:25 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_boto=True --custom-var=checkout_requests=True'
2018-10-01 23:24:51 +03:00
<< : *env-release-build
2019-09-24 20:52:06 +03:00
<< : *env-enable-sccache
2019-09-17 21:48:02 +03:00
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
2020-02-11 23:42:37 +03:00
steps :
- electron-publish :
attach : false
checkout : true
linux-x64-publish-skip-checkout :
<< : *machine-linux-2xlarge
environment :
<< : *env-linux-2xlarge-release
<< : *env-release-build
<< : *env-enable-sccache
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
steps :
- electron-publish :
attach : true
checkout : false
2018-09-27 17:58:57 +03:00
2018-09-15 01:12:30 +03:00
linux-ia32-testing :
2020-03-30 22:46:42 +03:00
<< : *machine-linux-xlarge
2018-09-15 01:12:30 +03:00
environment :
2020-03-30 22:46:42 +03:00
<< : *env-global
2018-09-15 01:12:30 +03:00
<< : *env-ia32
<< : *env-testing-build
2019-06-15 11:48:59 +03:00
<< : *env-ninja-status
2019-09-16 19:31:08 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
2019-11-28 03:29:53 +03:00
steps :
- electron-build :
persist : true
checkout : true
2020-01-23 20:47:38 +03:00
use-out-cache : false
2018-09-15 01:12:30 +03:00
2018-10-04 18:50:46 +03:00
linux-ia32-chromedriver :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-medium
2018-10-04 18:50:46 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
2018-10-04 18:50:46 +03:00
<< : *env-ia32
<< : *env-release-build
2018-10-06 02:15:38 +03:00
<< : *env-send-slack-notifications
2018-10-04 18:50:46 +03:00
<< : *steps-chromedriver-build
2018-09-15 01:12:30 +03:00
linux-ia32-release :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-08-14 01:43:00 +03:00
environment :
2019-09-19 19:37:54 +03:00
<< : *env-linux-2xlarge-release
2018-09-15 01:12:30 +03:00
<< : *env-ia32
<< : *env-release-build
2018-10-01 23:24:51 +03:00
<< : *env-send-slack-notifications
2019-06-15 11:48:59 +03:00
<< : *env-ninja-status
2020-02-06 20:56:18 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
steps :
- electron-build :
persist : true
checkout : true
2018-09-15 01:12:30 +03:00
2018-09-27 17:58:57 +03:00
linux-ia32-publish :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-09-27 17:58:57 +03:00
environment :
2019-08-24 00:01:12 +03:00
<< : *env-linux-2xlarge-release
2018-10-05 03:20:25 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_boto=True --custom-var=checkout_requests=True'
2018-09-27 17:58:57 +03:00
<< : *env-ia32
2018-10-01 23:24:51 +03:00
<< : *env-release-build
2019-09-24 20:52:06 +03:00
<< : *env-enable-sccache
2019-11-19 17:36:16 +03:00
<< : *env-32bit-release
2019-09-17 21:48:02 +03:00
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
2020-02-11 23:42:37 +03:00
steps :
- electron-publish :
attach : false
checkout : true
linux-ia32-publish-skip-checkout :
<< : *machine-linux-2xlarge
environment :
<< : *env-linux-2xlarge-release
<< : *env-ia32
<< : *env-release-build
<< : *env-enable-sccache
<< : *env-32bit-release
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
steps :
- electron-publish :
attach : true
checkout : false
2018-09-27 17:58:57 +03:00
2018-09-15 01:12:30 +03:00
linux-arm-testing :
2020-03-30 22:46:42 +03:00
<< : *machine-linux-xlarge
2018-08-14 01:43:00 +03:00
environment :
2020-03-30 22:46:42 +03:00
<< : *env-global
2018-09-15 01:12:30 +03:00
<< : *env-arm
<< : *env-testing-build
2019-06-15 11:48:59 +03:00
<< : *env-ninja-status
2018-10-04 19:01:16 +03:00
TRIGGER_ARM_TEST : true
2019-09-16 19:31:08 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
2019-11-28 03:29:53 +03:00
steps :
- electron-build :
persist : false
checkout : true
2020-01-23 20:47:38 +03:00
use-out-cache : false
2018-09-15 01:12:30 +03:00
2018-10-04 18:50:46 +03:00
linux-arm-chromedriver :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-medium
2018-10-04 18:50:46 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
2018-10-04 18:50:46 +03:00
<< : *env-arm
<< : *env-release-build
2018-10-06 02:15:38 +03:00
<< : *env-send-slack-notifications
2018-10-04 18:50:46 +03:00
<< : *steps-chromedriver-build
2018-09-15 01:12:30 +03:00
linux-arm-release :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-09-15 01:12:30 +03:00
environment :
2019-09-19 19:37:54 +03:00
<< : *env-linux-2xlarge-release
2018-09-15 01:12:30 +03:00
<< : *env-arm
<< : *env-release-build
2018-10-01 23:24:51 +03:00
<< : *env-send-slack-notifications
2019-06-15 11:48:59 +03:00
<< : *env-ninja-status
2020-02-06 20:56:18 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
steps :
- electron-build :
persist : false
checkout : true
2018-08-14 01:43:00 +03:00
2018-09-27 17:58:57 +03:00
linux-arm-publish :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-09-27 17:58:57 +03:00
environment :
2019-08-24 00:01:12 +03:00
<< : *env-linux-2xlarge-release
2018-09-27 17:58:57 +03:00
<< : *env-arm
2018-10-01 23:24:51 +03:00
<< : *env-release-build
2019-09-24 20:52:06 +03:00
<< : *env-enable-sccache
2019-11-19 17:36:16 +03:00
<< : *env-32bit-release
2018-10-05 03:20:25 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_boto=True --custom-var=checkout_requests=True'
2019-09-17 21:48:02 +03:00
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
2020-02-11 23:42:37 +03:00
steps :
- electron-publish :
attach : false
checkout : true
linux-arm-publish-skip-checkout :
<< : *machine-linux-2xlarge
environment :
<< : *env-linux-2xlarge-release
<< : *env-arm
<< : *env-release-build
<< : *env-enable-sccache
<< : *env-32bit-release
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
steps :
- electron-publish :
attach : true
checkout : false
2018-09-27 17:58:57 +03:00
2018-09-15 01:12:30 +03:00
linux-arm64-testing :
2020-03-30 22:46:42 +03:00
<< : *machine-linux-xlarge
2018-08-17 02:28:01 +03:00
environment :
2020-03-30 22:46:42 +03:00
<< : *env-global
2018-09-15 01:12:30 +03:00
<< : *env-arm64
<< : *env-testing-build
2019-06-15 11:48:59 +03:00
<< : *env-ninja-status
2018-10-04 19:01:16 +03:00
TRIGGER_ARM_TEST : true
2019-09-16 19:31:08 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
2019-11-28 03:29:53 +03:00
steps :
- electron-build :
persist : false
checkout : true
2020-01-23 20:47:38 +03:00
use-out-cache : false
2018-08-17 02:28:01 +03:00
2019-03-05 08:08:55 +03:00
linux-arm64-testing-gn-check :
<< : *machine-linux-medium
environment :
<< : *env-linux-medium
<< : *env-arm64
<< : *env-testing-build
<< : *steps-electron-gn-check
2018-10-04 18:50:46 +03:00
linux-arm64-chromedriver :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-medium
2018-10-04 18:50:46 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
2018-10-04 18:50:46 +03:00
<< : *env-arm64
<< : *env-release-build
2018-10-06 02:15:38 +03:00
<< : *env-send-slack-notifications
2018-10-04 18:50:46 +03:00
<< : *steps-chromedriver-build
2018-09-15 01:12:30 +03:00
linux-arm64-release :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-08-14 01:43:00 +03:00
environment :
2019-09-19 19:37:54 +03:00
<< : *env-linux-2xlarge-release
2018-09-15 01:12:30 +03:00
<< : *env-arm64
<< : *env-release-build
2018-10-01 23:24:51 +03:00
<< : *env-send-slack-notifications
2019-06-15 11:48:59 +03:00
<< : *env-ninja-status
2020-02-06 20:56:18 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm=True --custom-var=checkout_arm64=True'
steps :
- electron-build :
persist : false
checkout : true
2018-09-15 01:12:30 +03:00
2018-09-27 17:58:57 +03:00
linux-arm64-publish :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-09-27 17:58:57 +03:00
environment :
2019-08-24 00:01:12 +03:00
<< : *env-linux-2xlarge-release
2018-09-27 17:58:57 +03:00
<< : *env-arm64
2018-10-01 23:24:51 +03:00
<< : *env-release-build
2019-09-24 20:52:06 +03:00
<< : *env-enable-sccache
2018-10-05 03:20:25 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_arm64=True --custom-var=checkout_boto=True --custom-var=checkout_requests=True'
2019-09-17 21:48:02 +03:00
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
2020-02-11 23:42:37 +03:00
steps :
- electron-publish :
attach : false
checkout : true
linux-arm64-publish-skip-checkout :
<< : *machine-linux-2xlarge
environment :
<< : *env-linux-2xlarge-release
<< : *env-arm64
<< : *env-release-build
<< : *env-enable-sccache
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
steps :
- electron-publish :
attach : true
checkout : false
2018-09-27 17:58:57 +03:00
2018-09-17 19:44:02 +03:00
osx-testing :
2019-01-31 20:59:32 +03:00
<< : *machine-mac-large
2018-09-17 19:44:02 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-mac-large
2018-09-17 19:44:02 +03:00
<< : *env-testing-build
2019-06-15 11:48:59 +03:00
<< : *env-ninja-status
2019-11-28 03:29:53 +03:00
<< : *env-macos-build
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_mac=True --custom-var=host_os=mac'
steps :
- electron-build :
persist : true
checkout : false
checkout-and-assume-cache : true
attach : false
2018-09-17 19:44:02 +03:00
2019-03-05 08:08:55 +03:00
osx-testing-gn-check :
<< : *machine-mac
environment :
<< : *env-machine-mac
<< : *env-testing-build
<< : *steps-electron-gn-check
2019-01-31 20:59:32 +03:00
osx-chromedriver :
2019-01-07 22:59:45 +03:00
<< : *machine-mac
2018-09-17 19:44:02 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-machine-mac
<< : *env-release-build
<< : *env-send-slack-notifications
<< : *steps-chromedriver-build
osx-release :
<< : *machine-mac-large
environment :
<< : *env-mac-large
<< : *env-release-build
2019-06-15 11:48:59 +03:00
<< : *env-ninja-status
2020-02-06 20:56:18 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_mac=True --custom-var=host_os=mac'
steps :
- electron-build :
persist : true
checkout : false
checkout-and-assume-cache : true
attach : false
2019-01-31 20:59:32 +03:00
osx-publish :
<< : *machine-mac-large
environment :
2019-08-24 00:01:12 +03:00
<< : *env-mac-large-release
2019-01-31 20:59:32 +03:00
<< : *env-release-build
2019-09-24 20:52:06 +03:00
<< : *env-enable-sccache
2019-01-31 20:59:32 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_boto=True --custom-var=checkout_requests=True'
2019-09-17 21:48:02 +03:00
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
2020-02-11 23:42:37 +03:00
steps :
- electron-publish :
attach : false
checkout : true
osx-publish-skip-checkout :
<< : *machine-mac-large
environment :
<< : *env-mac-large-release
<< : *env-release-build
<< : *env-enable-sccache
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
steps :
- electron-publish :
attach : true
checkout : false
2019-01-31 20:59:32 +03:00
mas-testing :
<< : *machine-mac-large
environment :
<< : *env-mac-large
2018-09-17 19:44:02 +03:00
<< : *env-mas
<< : *env-testing-build
2019-06-15 11:48:59 +03:00
<< : *env-ninja-status
2019-11-28 03:29:53 +03:00
<< : *env-macos-build
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_mac=True --custom-var=host_os=mac'
steps :
- electron-build :
persist : true
checkout : false
checkout-and-assume-cache : true
attach : false
2019-01-31 20:59:32 +03:00
2019-03-05 08:08:55 +03:00
mas-testing-gn-check :
<< : *machine-mac
environment :
<< : *env-machine-mac
<< : *env-mas
<< : *env-testing-build
<< : *steps-electron-gn-check
2019-01-31 20:59:32 +03:00
mas-release :
<< : *machine-mac-large
environment :
<< : *env-mac-large
<< : *env-mas
<< : *env-release-build
2019-10-09 00:46:01 +03:00
<< : *env-ninja-status
2020-02-06 20:56:18 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_mac=True --custom-var=host_os=mac'
steps :
- electron-build :
persist : true
checkout : false
checkout-and-assume-cache : true
attach : false
2019-01-31 20:59:32 +03:00
mas-publish :
<< : *machine-mac-large
environment :
2019-08-24 00:01:12 +03:00
<< : *env-mac-large-release
2019-01-31 20:59:32 +03:00
<< : *env-mas
<< : *env-release-build
2019-09-24 20:52:06 +03:00
<< : *env-enable-sccache
2019-01-31 20:59:32 +03:00
GCLIENT_EXTRA_ARGS : '--custom-var=checkout_boto=True --custom-var=checkout_requests=True'
2019-09-17 21:48:02 +03:00
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
2020-02-11 23:42:37 +03:00
steps :
- electron-publish :
attach : false
checkout : true
mas-publish-skip-checkout :
<< : *machine-mac-large
environment :
<< : *env-mac-large-release
<< : *env-mas
<< : *env-release-build
<< : *env-enable-sccache
UPLOAD_TO_S3 : << pipeline.parameters.upload-to-s3 >>
steps :
- electron-publish :
attach : true
checkout : false
2018-09-17 19:44:02 +03:00
2018-09-15 01:12:30 +03:00
# Layer 3: Tests.
2018-09-27 18:29:27 +03:00
linux-x64-unittests :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-09-27 18:29:27 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-2xlarge
2018-09-27 18:29:27 +03:00
<< : *env-unittests
2018-10-22 23:12:19 +03:00
<< : *env-headless-testing
<< : *steps-native-tests
linux-x64-disabled-unittests :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-10-22 23:12:19 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-2xlarge
2018-10-22 23:12:19 +03:00
<< : *env-unittests
<< : *env-headless-testing
2018-10-25 21:28:50 +03:00
TESTS_ARGS : '--only-disabled-tests'
2018-10-22 23:12:19 +03:00
<< : *steps-native-tests
linux-x64-chromium-unittests :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-10-22 23:12:19 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-2xlarge
2018-10-22 23:12:19 +03:00
<< : *env-unittests
2018-10-05 23:06:52 +03:00
<< : *env-headless-testing
2018-10-25 21:28:50 +03:00
TESTS_ARGS : '--include-disabled-tests'
2018-09-27 18:29:27 +03:00
<< : *steps-native-tests
linux-x64-browsertests :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-2xlarge
2018-09-18 13:55:46 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-2xlarge
2018-09-27 18:29:27 +03:00
<< : *env-browsertests
2018-10-01 23:24:51 +03:00
<< : *env-testing-build
2018-10-05 23:06:52 +03:00
<< : *env-headless-testing
2018-09-18 13:55:46 +03:00
<< : *steps-native-tests
2018-09-15 01:12:30 +03:00
linux-x64-testing-tests :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-medium
2018-10-05 23:06:52 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
2018-10-05 23:06:52 +03:00
<< : *env-headless-testing
2018-10-09 02:17:11 +03:00
<< : *env-stack-dumping
2019-11-07 03:15:55 +03:00
parallelism : 3
2018-09-15 01:12:30 +03:00
<< : *steps-tests
2019-05-29 22:38:17 +03:00
linux-x64-testing-nan :
<< : *machine-linux-medium
environment :
<< : *env-linux-medium
<< : *env-headless-testing
<< : *env-stack-dumping
<< : *steps-test-nan
2019-07-23 21:40:06 +03:00
linux-x64-testing-node :
2019-07-24 03:12:25 +03:00
<< : *machine-linux-2xlarge
2019-07-23 21:40:06 +03:00
environment :
<< : *env-linux-medium
<< : *env-headless-testing
<< : *env-stack-dumping
<< : *steps-test-node
2018-09-15 01:12:30 +03:00
linux-x64-release-tests :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-medium
2018-10-05 23:06:52 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
2018-10-05 23:06:52 +03:00
<< : *env-headless-testing
2018-10-06 02:15:38 +03:00
<< : *env-send-slack-notifications
2018-09-15 01:12:30 +03:00
<< : *steps-tests
2018-08-14 01:43:00 +03:00
2018-10-04 18:50:46 +03:00
linux-x64-verify-ffmpeg :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-medium
2018-10-05 23:06:52 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
2018-10-05 23:06:52 +03:00
<< : *env-headless-testing
2018-10-06 02:15:38 +03:00
<< : *env-send-slack-notifications
2018-10-01 23:24:51 +03:00
<< : *steps-verify-ffmpeg
2018-09-15 01:12:30 +03:00
linux-ia32-testing-tests :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-medium
2018-09-15 01:12:30 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
2018-09-15 01:12:30 +03:00
<< : *env-ia32
2018-10-05 23:06:52 +03:00
<< : *env-headless-testing
2018-10-09 02:17:11 +03:00
<< : *env-stack-dumping
2019-11-07 03:15:55 +03:00
parallelism : 3
2018-09-15 01:12:30 +03:00
<< : *steps-tests
2019-05-29 22:38:17 +03:00
linux-ia32-testing-nan :
<< : *machine-linux-medium
environment :
<< : *env-linux-medium
<< : *env-ia32
<< : *env-headless-testing
<< : *env-stack-dumping
<< : *steps-test-nan
2019-07-23 21:40:06 +03:00
linux-ia32-testing-node :
2019-07-24 03:12:25 +03:00
<< : *machine-linux-2xlarge
2019-07-23 21:40:06 +03:00
environment :
<< : *env-linux-medium
<< : *env-ia32
<< : *env-headless-testing
<< : *env-stack-dumping
<< : *steps-test-node
2018-09-15 01:12:30 +03:00
linux-ia32-release-tests :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-medium
2018-09-15 01:12:30 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
2018-09-15 01:12:30 +03:00
<< : *env-ia32
2018-10-05 23:06:52 +03:00
<< : *env-headless-testing
2018-10-06 02:15:38 +03:00
<< : *env-send-slack-notifications
2018-09-15 01:12:30 +03:00
<< : *steps-tests
2018-10-04 18:50:46 +03:00
linux-ia32-verify-ffmpeg :
2019-01-07 22:59:45 +03:00
<< : *machine-linux-medium
2018-10-01 23:24:51 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
2018-10-01 23:24:51 +03:00
<< : *env-ia32
2018-10-05 23:06:52 +03:00
<< : *env-headless-testing
2018-10-06 02:15:38 +03:00
<< : *env-send-slack-notifications
2018-10-01 23:24:51 +03:00
<< : *steps-verify-ffmpeg
2019-01-07 22:59:45 +03:00
osx-testing-tests :
2019-01-31 20:59:32 +03:00
<< : *machine-mac-large
2019-01-07 22:59:45 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-mac-large
2019-01-07 22:59:45 +03:00
<< : *env-stack-dumping
2019-11-07 03:15:55 +03:00
parallelism : 2
2019-01-07 22:59:45 +03:00
<< : *steps-tests
2019-01-31 20:59:32 +03:00
osx-release-tests :
<< : *machine-mac-large
environment :
<< : *env-mac-large
<< : *env-stack-dumping
<< : *env-send-slack-notifications
<< : *steps-tests
osx-verify-ffmpeg :
2019-01-07 22:59:45 +03:00
<< : *machine-mac
2018-10-09 02:17:11 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-machine-mac
<< : *env-send-slack-notifications
<< : *steps-verify-ffmpeg
mas-testing-tests :
<< : *machine-mac-large
environment :
<< : *env-mac-large
2018-10-09 02:17:11 +03:00
<< : *env-stack-dumping
2019-11-07 03:15:55 +03:00
parallelism : 2
2018-09-21 12:43:28 +03:00
<< : *steps-tests
2018-08-21 20:06:28 +03:00
2019-01-31 20:59:32 +03:00
mas-release-tests :
<< : *machine-mac-large
environment :
<< : *env-mac-large
<< : *env-stack-dumping
<< : *env-send-slack-notifications
<< : *steps-tests
mas-verify-ffmpeg :
<< : *machine-mac
environment :
<< : *env-machine-mac
<< : *env-send-slack-notifications
<< : *steps-verify-ffmpeg
2018-10-06 02:15:38 +03:00
# Layer 4: Summary.
2019-01-07 22:59:45 +03:00
linux-x64-release-summary :
<< : *machine-linux-medium
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
<< : *env-send-slack-notifications
2019-01-07 22:59:45 +03:00
steps :
- *step-maybe-notify-slack-success
linux-ia32-release-summary :
<< : *machine-linux-medium
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
<< : *env-send-slack-notifications
2019-01-07 22:59:45 +03:00
steps :
- *step-maybe-notify-slack-success
linux-arm-release-summary :
<< : *machine-linux-medium
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
<< : *env-send-slack-notifications
2019-01-07 22:59:45 +03:00
steps :
- *step-maybe-notify-slack-success
linux-arm64-release-summary :
<< : *machine-linux-medium
2018-10-06 02:15:38 +03:00
environment :
2019-01-31 20:59:32 +03:00
<< : *env-linux-medium
<< : *env-send-slack-notifications
steps :
- *step-maybe-notify-slack-success
mas-release-summary :
<< : *machine-mac
environment :
<< : *env-machine-mac
<< : *env-send-slack-notifications
steps :
- *step-maybe-notify-slack-success
osx-release-summary :
<< : *machine-mac
environment :
<< : *env-machine-mac
<< : *env-send-slack-notifications
2018-10-06 02:15:38 +03:00
steps :
- *step-maybe-notify-slack-success
2017-09-13 16:48:19 +03:00
workflows :
2019-09-18 22:53:54 +03:00
version : 2.1
2019-09-17 21:48:02 +03:00
2019-10-09 00:46:01 +03:00
# The publish workflows below each contain one job so that they are
2019-09-17 21:48:02 +03:00
# compatible with how sudowoodo works today. If these workflows are
# changed to have multiple jobs, then scripts/release/ci-release-build.js
# will need to be updated and there will most likely need to be changes to
# sudowoodo
2020-02-11 23:42:37 +03:00
publish-linux :
when : << pipeline.parameters.run-linux-publish >>
jobs :
- linux-checkout
- linux-x64-publish-skip-checkout :
requires :
- linux-checkout
context : release-env
- linux-ia32-publish-skip-checkout :
requires :
- linux-checkout
context : release-env
- linux-arm-publish-skip-checkout :
requires :
- linux-checkout
context : release-env
- linux-arm64-publish-skip-checkout :
requires :
- linux-checkout
context : release-env
2019-09-17 21:48:02 +03:00
publish-x64-linux :
when : << pipeline.parameters.run-linux-x64-publish >>
jobs :
2019-09-24 20:52:06 +03:00
- linux-x64-publish :
context : release-env
2019-09-17 21:48:02 +03:00
publish-ia32-linux :
when : << pipeline.parameters.run-linux-ia32-publish >>
jobs :
2019-09-24 20:52:06 +03:00
- linux-ia32-publish :
context : release-env
2019-09-17 21:48:02 +03:00
publish-arm-linux :
when : << pipeline.parameters.run-linux-arm-publish >>
jobs :
2019-09-24 20:52:06 +03:00
- linux-arm-publish :
context : release-env
2019-10-09 00:46:01 +03:00
2019-09-17 21:48:02 +03:00
publish-arm64-linux :
when : << pipeline.parameters.run-linux-arm64-publish >>
jobs :
2019-09-24 20:52:06 +03:00
- linux-arm64-publish :
context : release-env
2019-10-09 00:46:01 +03:00
2019-09-17 21:48:02 +03:00
publish-osx :
when : << pipeline.parameters.run-osx-publish >>
jobs :
2019-09-24 20:52:06 +03:00
- osx-publish :
context : release-env
2019-09-17 21:48:02 +03:00
publish-mas :
when : << pipeline.parameters.run-mas-publish >>
jobs :
2019-09-24 20:52:06 +03:00
- mas-publish :
context : release-env
2019-09-17 21:48:02 +03:00
2020-02-11 23:42:37 +03:00
publish-macos :
when : << pipeline.parameters.run-macos-publish >>
jobs :
- mac-checkout
- osx-publish-skip-checkout :
requires :
- mac-checkout
- mas-publish-skip-checkout :
requires :
- mac-checkout
2019-02-06 23:53:25 +03:00
lint :
2019-09-17 21:48:02 +03:00
when : << pipeline.parameters.run-lint >>
2019-02-06 23:53:25 +03:00
jobs :
- lint
2018-09-11 10:57:41 +03:00
build-linux :
2019-09-17 21:48:02 +03:00
when : << pipeline.parameters.run-build-linux >>
2018-07-11 21:01:15 +03:00
jobs :
2019-08-21 21:52:17 +03:00
- linux-checkout-fast
- linux-checkout-and-save-cache
2018-09-15 01:12:30 +03:00
2019-09-16 19:31:08 +03:00
- linux-x64-testing
- linux-x64-testing-no-run-as-node
2019-03-05 08:08:55 +03:00
- linux-x64-testing-gn-check :
requires :
2019-08-21 21:52:17 +03:00
- linux-checkout-fast
2018-09-15 01:12:30 +03:00
- linux-x64-testing-tests :
requires :
- linux-x64-testing
2019-05-29 22:38:17 +03:00
- linux-x64-testing-nan :
requires :
- linux-x64-testing
2019-07-23 21:40:06 +03:00
- linux-x64-testing-node :
requires :
- linux-x64-testing
2018-09-19 15:53:22 +03:00
2019-09-16 19:31:08 +03:00
- linux-ia32-testing
2018-09-15 01:12:30 +03:00
- linux-ia32-testing-tests :
requires :
- linux-ia32-testing
2019-05-29 22:38:17 +03:00
- linux-ia32-testing-nan :
requires :
- linux-ia32-testing
2019-07-23 21:40:06 +03:00
- linux-ia32-testing-node :
requires :
- linux-ia32-testing
2018-09-19 15:53:22 +03:00
2019-09-16 19:31:08 +03:00
- linux-arm-testing
2018-09-21 12:43:28 +03:00
2019-09-16 19:31:08 +03:00
- linux-arm64-testing
2019-03-05 08:08:55 +03:00
- linux-arm64-testing-gn-check :
requires :
2019-08-21 21:52:17 +03:00
- linux-checkout-fast
2019-10-24 02:36:26 +03:00
- ts-compile-doc-change
2018-09-14 21:56:16 +03:00
2019-01-31 20:59:32 +03:00
build-mac :
2019-09-17 21:48:02 +03:00
when : << pipeline.parameters.run-build-mac >>
2018-08-21 20:06:28 +03:00
jobs :
2019-08-21 21:52:17 +03:00
- mac-checkout-fast
- mac-checkout-and-save-cache
2018-09-17 19:44:02 +03:00
- osx-testing :
2019-01-31 20:59:32 +03:00
requires :
2019-11-28 03:29:53 +03:00
- mac-checkout-and-save-cache
2019-01-31 20:59:32 +03:00
2019-03-05 08:08:55 +03:00
- osx-testing-gn-check :
requires :
2019-08-21 21:52:17 +03:00
- mac-checkout-fast
2019-03-05 08:08:55 +03:00
2019-01-07 22:59:45 +03:00
- osx-testing-tests :
2018-09-17 19:44:02 +03:00
requires :
- osx-testing
- mas-testing :
2019-01-31 20:59:32 +03:00
requires :
2019-11-28 03:29:53 +03:00
- mac-checkout-and-save-cache
2019-01-31 20:59:32 +03:00
2019-03-05 08:08:55 +03:00
- mas-testing-gn-check :
requires :
2019-08-21 21:52:17 +03:00
- mac-checkout-fast
2019-03-05 08:08:55 +03:00
2019-01-07 22:59:45 +03:00
- mas-testing-tests :
2018-09-17 19:44:02 +03:00
requires :
- mas-testing
2018-05-22 20:50:44 +03:00
2019-02-01 23:07:23 +03:00
nightly-linux-release-test :
2018-10-10 08:37:59 +03:00
triggers :
- schedule :
cron : "0 0 * * *"
filters :
branches :
only :
- master
- *chromium-upgrade-branches
2018-08-17 02:28:01 +03:00
jobs :
2019-09-17 21:48:02 +03:00
- linux-checkout-fast
2020-02-06 20:56:18 +03:00
- linux-checkout-and-save-cache
2018-09-15 01:12:30 +03:00
2020-02-06 20:56:18 +03:00
- linux-x64-release
2018-09-15 01:12:30 +03:00
- linux-x64-release-tests :
requires :
- linux-x64-release
2018-10-04 18:50:46 +03:00
- linux-x64-verify-ffmpeg :
2018-10-01 23:24:51 +03:00
requires :
- linux-x64-release
2019-01-07 22:59:45 +03:00
- linux-x64-release-summary :
2018-10-06 02:15:38 +03:00
requires :
- linux-x64-release
- linux-x64-release-tests
- linux-x64-verify-ffmpeg
2018-09-21 12:43:28 +03:00
2020-02-06 20:56:18 +03:00
- linux-ia32-release
2018-09-15 01:12:30 +03:00
- linux-ia32-release-tests :
requires :
- linux-ia32-release
2018-10-04 18:50:46 +03:00
- linux-ia32-verify-ffmpeg :
2018-10-01 23:24:51 +03:00
requires :
- linux-ia32-release
2019-01-07 22:59:45 +03:00
- linux-ia32-release-summary :
2018-10-06 02:15:38 +03:00
requires :
- linux-ia32-release
- linux-ia32-release-tests
- linux-ia32-verify-ffmpeg
2018-09-21 12:43:28 +03:00
2020-02-06 20:56:18 +03:00
- linux-arm-release
2019-01-07 22:59:45 +03:00
- linux-arm-release-summary :
2018-10-06 02:15:38 +03:00
requires :
- linux-arm-release
2019-03-28 18:05:43 +03:00
2020-02-06 20:56:18 +03:00
- linux-arm64-release
2019-01-07 22:59:45 +03:00
- linux-arm64-release-summary :
2018-10-06 02:15:38 +03:00
requires :
- linux-arm64-release
2018-10-04 18:50:46 +03:00
2019-02-01 23:07:23 +03:00
nightly-mac-release-test :
triggers :
- schedule :
cron : "0 0 * * *"
filters :
branches :
only :
- master
- *chromium-upgrade-branches
jobs :
2019-09-17 21:48:02 +03:00
- mac-checkout-fast
2020-02-06 20:56:18 +03:00
- mac-checkout-and-save-cache
2019-02-01 23:07:23 +03:00
- osx-release :
requires :
2020-02-06 20:56:18 +03:00
- mac-checkout-and-save-cache
2019-02-01 23:07:23 +03:00
- osx-release-tests :
requires :
- osx-release
- osx-verify-ffmpeg :
requires :
- osx-release
- osx-release-summary :
requires :
- osx-release
- osx-release-tests
- osx-verify-ffmpeg
- mas-release :
requires :
2020-02-06 20:56:18 +03:00
- mac-checkout-and-save-cache
2019-02-01 23:07:23 +03:00
- mas-release-tests :
requires :
- mas-release
- mas-verify-ffmpeg :
requires :
- mas-release
- mas-release-summary :
requires :
- mas-release
- mas-release-tests
- mas-verify-ffmpeg
2018-10-04 18:50:46 +03:00
# Various slow and non-essential checks we run only nightly.
# Sanitizer jobs should be added here.
linux-checks-nightly :
triggers :
- schedule :
cron : "0 0 * * *"
filters :
branches :
only :
- master
- *chromium-upgrade-branches
jobs :
2018-11-05 18:19:00 +03:00
- linux-checkout-for-native-tests
2018-10-04 18:50:46 +03:00
# TODO(alexeykuzmin): Enable it back.
# Tons of crashes right now, see
# https://circleci.com/gh/electron/electron/67463
# - linux-x64-browsertests:
# requires:
2018-11-05 18:19:00 +03:00
# - linux-checkout-for-native-tests
2018-10-04 18:50:46 +03:00
- linux-x64-unittests :
requires :
2018-11-05 18:19:00 +03:00
- linux-checkout-for-native-tests
2018-10-22 23:12:19 +03:00
- linux-x64-disabled-unittests :
requires :
2018-11-05 18:19:00 +03:00
- linux-checkout-for-native-tests
2018-10-22 23:12:19 +03:00
2018-11-05 18:19:00 +03:00
- linux-checkout-for-native-tests-with-no-patches
2018-10-22 23:12:19 +03:00
- linux-x64-chromium-unittests :
requires :
2018-11-05 18:19:00 +03:00
- linux-checkout-for-native-tests-with-no-patches