From 499fc48ccfef987e388ee916e500094f36cdbe72 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Fri, 21 Sep 2018 11:43:28 +0200 Subject: [PATCH 1/2] ci: clean up the CircleCI config --- .circleci/config.yml | 127 ++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 79 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 07db7247c3fd..66adaac81a53 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -189,11 +189,6 @@ step-ffmpeg-build: &step-ffmpeg-build cd src ninja -C out/ffmpeg third_party/ffmpeg -step-ffmpeg-store: &step-ffmpeg-store - store_artifacts: - path: src/out/ffmpeg/libffmpeg.so - destination: libffmpeg.so - step-verify-ffmpeg: &step-verify-ffmpeg run: name: Verify ffmpeg @@ -201,29 +196,13 @@ step-verify-ffmpeg: &step-verify-ffmpeg cd src python electron/script/verify-ffmpeg.py --source-root "$PWD" --build-dir out/Default --ffmpeg-path out/ffmpeg -step-setup-for-headless-testing: &step-setup-for-headless-testing +step-setup-linux-for-headless-testing: &step-setup-linux-for-headless-testing run: name: Setup for headless testing command: | - sh -e /etc/init.d/xvfb start - -step-electron-tests-run: &step-electron-tests-run - run: - name: Run Electron tests - environment: - DISPLAY: ':99.0' - MOCHA_REPORTER: mocha-multi-reporters - MOCHA_FILE: junit/test-results.xml - MOCHA_MULTI_REPORTERS: mocha-junit-reporter, tap - ELECTRON_DISABLE_SECURITY_WARNINGS: 1 - command: | - cd src - export ELECTRON_OUT_DIR=Default - (cd electron && npm run test -- --ci --enable-logging) - -step-electron-tests-store-results: &step-electron-tests-store-results - store_test_results: - path: src/junit + if [ "`uname`" != "Darwin" ]; then + sh -e /etc/init.d/xvfb start + fi step-show-sccache-stats: &step-show-sccache-stats run: @@ -267,7 +246,7 @@ steps-checkout: &steps-checkout - depot_tools - src -steps-debug-build: &steps-debug-build +steps-electron-build: &steps-electron-build steps: - attach_workspace: at: . @@ -280,28 +259,7 @@ steps-debug-build: &steps-debug-build - *step-show-sccache-stats -steps-testing-build: &steps-testing-build - steps: - - attach_workspace: - at: . - - *step-depot-tools-add-to-path - - *step-setup-env-for-build - - # Electron app - - *step-electron-gn-gen - - *step-electron-build - - *step-electron-dist-build - - *step-electron-dist-store - - # Node.js headers - - *step-nodejs-headers-build - - - *step-show-sccache-stats - - # Save all data needed for a further tests run. - - *step-persist-data-for-tests - -steps-release-build: &steps-release-build +steps-electron-build-for-tests: &steps-electron-build-for-tests steps: - attach_workspace: at: . @@ -355,8 +313,10 @@ steps-ffmpeg-build: &steps-ffmpeg-build - *step-ffmpeg-gn-gen - *step-ffmpeg-build - - *step-ffmpeg-store + - store_artifacts: + path: src/out/ffmpeg/libffmpeg.so + destination: libffmpeg.so - persist_to_workspace: root: . paths: @@ -380,7 +340,7 @@ steps-verify-ffmpeg: &steps-verify-ffmpeg at: . - *step-depot-tools-add-to-path - *step-electron-dist-unzip - - *step-setup-for-headless-testing + - *step-setup-linux-for-headless-testing - *step-verify-ffmpeg @@ -390,10 +350,24 @@ steps-tests: &steps-tests at: . - *step-depot-tools-add-to-path - *step-electron-dist-unzip - - *step-setup-for-headless-testing + - *step-setup-linux-for-headless-testing + - *step-install-nodejs-on-mac - - *step-electron-tests-run - - *step-electron-tests-store-results + - run: + name: Run Electron tests + environment: + DISPLAY: ':99.0' + MOCHA_REPORTER: mocha-multi-reporters + MOCHA_FILE: junit/test-results.xml + MOCHA_MULTI_REPORTERS: mocha-junit-reporter, tap + ELECTRON_DISABLE_SECURITY_WARNINGS: 1 + command: | + cd src + export ELECTRON_OUT_DIR=Default + (cd electron && npm run test -- --ci --enable-logging) + + - store_test_results: + path: src/junit # Mac build are different in a few ways: # 1. We can't use save_cache/restore_cache on Mac, @@ -418,7 +392,9 @@ steps-build-mac: &steps-build-mac # ffmpeg - *step-ffmpeg-gn-gen - *step-ffmpeg-build - - *step-ffmpeg-store + - store_artifacts: + path: src/out/ffmpeg/libffmpeg.dylib + destination: libffmpeg.dylib # It would be better to verify ffmpeg as a part of a test job, # but it requires `gn` to run, and it's complicated @@ -439,17 +415,6 @@ steps-build-mac: &steps-build-mac # Save all data needed for a further tests run. - *step-persist-data-for-tests -steps-tests-mac: &steps-tests-mac - steps: - - attach_workspace: - at: . - - *step-depot-tools-add-to-path - - *step-electron-dist-unzip - - *step-install-nodejs-on-mac - - - *step-electron-tests-run - - *step-electron-tests-store-results - filter-only-prs-from-forks: &filter-only-prs-from-forks filters: branches: @@ -480,13 +445,13 @@ jobs: <<: *machine-linux-2xlarge environment: <<: *env-debug-build - <<: *steps-debug-build + <<: *steps-electron-build linux-x64-testing: <<: *machine-linux-2xlarge environment: <<: *env-testing-build - <<: *steps-testing-build + <<: *steps-electron-build-for-tests linux-x64-ffmpeg: <<: *machine-linux-medium @@ -497,21 +462,21 @@ jobs: <<: *machine-linux-2xlarge environment: <<: *env-release-build - <<: *steps-release-build + <<: *steps-electron-build-for-tests linux-ia32-debug: <<: *machine-linux-2xlarge environment: <<: *env-ia32 <<: *env-debug-build - <<: *steps-debug-build + <<: *steps-electron-build linux-ia32-testing: <<: *machine-linux-2xlarge environment: <<: *env-ia32 <<: *env-testing-build - <<: *steps-testing-build + <<: *steps-electron-build-for-tests linux-ia32-ffmpeg: <<: *machine-linux-medium @@ -524,21 +489,21 @@ jobs: environment: <<: *env-ia32 <<: *env-release-build - <<: *steps-release-build + <<: *steps-electron-build-for-tests linux-arm-debug: <<: *machine-linux-2xlarge environment: <<: *env-arm <<: *env-debug-build - <<: *steps-debug-build + <<: *steps-electron-build linux-arm-testing: <<: *machine-linux-2xlarge environment: <<: *env-arm <<: *env-testing-build - <<: *steps-testing-build + <<: *steps-electron-build-for-tests linux-arm-ffmpeg: <<: *machine-linux-medium @@ -551,7 +516,7 @@ jobs: environment: <<: *env-arm <<: *env-release-build - <<: *steps-release-build + <<: *steps-electron-build-for-tests linux-arm-mksnapshot: <<: *machine-linux-medium @@ -564,14 +529,14 @@ jobs: environment: <<: *env-arm64 <<: *env-debug-build - <<: *steps-debug-build + <<: *steps-electron-build linux-arm64-testing: <<: *machine-linux-2xlarge environment: <<: *env-arm64 <<: *env-testing-build - <<: *steps-testing-build + <<: *steps-electron-build-for-tests linux-arm64-ffmpeg: <<: *machine-linux-medium @@ -584,7 +549,7 @@ jobs: environment: <<: *env-arm64 <<: *env-release-build - <<: *steps-release-build + <<: *steps-electron-build-for-tests linux-arm64-mksnapshot: <<: *machine-linux-medium @@ -644,11 +609,11 @@ jobs: osx-testing-tests: <<: *machine-mac - <<: *steps-tests-mac + <<: *steps-tests mas-testing-tests: <<: *machine-mac - <<: *steps-tests-mac + <<: *steps-tests workflows: version: 2 @@ -705,6 +670,7 @@ workflows: - linux-arm-ffmpeg: requires: - linux-arm-checkout + - linux-arm64-debug: requires: - linux-arm64-checkout @@ -750,18 +716,21 @@ workflows: - linux-x64-release-tests: requires: - linux-x64-release + - linux-ia32-release: requires: - linux-checkout - linux-ia32-release-tests: requires: - linux-ia32-release + - linux-arm-release: requires: - linux-arm-checkout - linux-arm-mksnapshot: requires: - linux-arm-checkout + - linux-arm64-release: requires: - linux-arm64-checkout From 0b560607f762d7d7e19d7039f67806381a6c1fd2 Mon Sep 17 00:00:00 2001 From: Aleksei Kuzmin Date: Fri, 21 Sep 2018 11:48:34 +0200 Subject: [PATCH 2/2] ci: run nightly builds for Chromium upgrade branches --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 66adaac81a53..2310ae1b3a1e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -705,6 +705,7 @@ workflows: branches: only: - master + - chromium-upgrade/* jobs: - linux-checkout - linux-arm-checkout