Граф коммитов

133 Коммитов

Автор SHA1 Сообщение Дата
Shobhit 31a6d2b80c
chore: introduce electron e2e reliability build similar to e2e-reliability (#1848)
* introduce electron e2e reliability build similar to e2e-reliability

* fix node install step

* fix test result publish step
2019-12-12 12:59:08 -08:00
John Alkire dd5cb11eb7
feat(electron-update): Add task to prepare & publish electron artifact (#1828)
Currently, we publish an artifact for the electron build that includes both the packed and unpacked versions of the product for each platform. This is useful for testing purposes, but we only need the packed version for the actual release process. This PR adds a build step that copies only the files we need to release into a separate directory for use in the release pipeline. The artifact is then published as usual.
2019-12-10 09:53:36 -08:00
John Alkire 02857b28d8
feat(electron-update): Use script to update electron package's checksum after signing (#1824)
Our electron update mechanism relies on a latest.yml metadata file to provide the package file name, version, and an accompanying checksum to validate the downloaded file. Currently, this metadata file is generated alongside the corresponding package file. In the build loop, we then sign that package file. This modifies the package, thus rendering the previously generated checksum invalid. This PR introduces a script to recalculate the checksum and update the latest.yml file accordingly. It then puts the script immediately after the signing steps for mac and windows.
2019-12-10 09:31:39 -08:00
John Alkire 75eb652aa2
feat(electron-update): Use update-electron-config task in electron build (#1815)
A recent PR (#1805) added the update-electron-config grunt task. This PR puts it to use in the electron build pipeline.
2019-12-06 14:21:00 -08:00
Liu Haonan 4075638e0e
feat: Parameterize the electron build version to download (#1792)
* fix the version

* parameterize the electron build version to download

* Use conditional path in spectron e2e test

* renaming

* rename file

* rename file

* modify the discription
2019-12-04 13:27:49 -08:00
Liu Haonan 248d93ac9a
feat: Use internal electron build for e2e test in pipeline (#1775)
* test

* test env var

* fix typo

* replace for non linux

* use env vars in pipeline

* log err

* move the script

* remove extra script file

* renaming

* move replacing step as a separate template

* rephrase description
2019-12-03 12:06:25 -08:00
Mark Reay 0437bf2bae
Add yaml to build and public accessibility-insights-report (#1759) 2019-11-27 10:00:20 -08:00
Dan Bjorge 096bf61629
test: update e2es to use the new insightsUserConfiguration controller for setting high-contrast mode (#1730)
#### Description of changes

This updates all the existing E2E tests to use the new insightsUserConfiguration controller in the background page to set high-contrast mode for accessibility tests, rather than using the details page UI to do it. This:

* Cuts 2-3min off e2e runtime
* Removes a bunch of operations that would otherwise be opportunities for flakiness
* Cooperates better with upcoming permissions changes that would otherwise prevent the use of the details view UI without popping the popup UI first

Mechanically, this allows for a bunch of simplification of the existing tests, since they no longer need to spawn separate browser instances/pages in a lot of cases; there was a pattern of having 2 top level describe blocks for "normal mode" vs "high contrast" mode that I've eliminated and replaced with updating a11y tests to just do `it.each` over the 2 HC states.

As part of this, I updated the guidance content tests to work more similar to every other test case, where we do a11y scans in both HC/non-HC modes but only snapshot the components in one of the 2 modes. This is where most of the "30k lines deleted" comes from.

#### Pull request checklist
<!-- If a checklist item is not applicable to this change, write "n/a" in the checkbox -->
- [n/a] Addresses an existing issue: #0000
- [x] Ran `yarn fastpass`
- [n/a] Added/updated relevant unit test(s) (and ran `yarn test`)
- [n/a] Verified code coverage for the changes made. Check coverage report at: `<rootDir>/test-results/unit/coverage`
- [x] PR title *AND* final merge commit title both start with a semantic tag (`fix:`, `chore:`, `feat(feature-name):`, `refactor:`). Check workflow guide at: `<rootDir>/docs/workflow.md`
- [n/a] (UI changes only) Added screenshots/GIFs to description above
- [n/a] (UI changes only) Verified usability with NVDA/JAWS
2019-11-25 14:43:03 -08:00
Shobhit 9a733405a3
chore: upgrade node LTS version in our build pipelines to 12.13.0 from v10 (#1715)
* upgrade node lts version to 12.13.0 from v10

* remove unlinked changes and make them part of next PR
2019-11-20 11:06:28 -08:00
Shobhit 01975593ed
fix: update electron dist:electron to pack:electron (#1664) 2019-11-11 15:29:32 -08:00
AhmedAbdoOrtiga e602cc4e8b
feat: Sign electron distributables (#1644)
feat: Sign electron distributables
2019-11-08 11:39:24 -08:00
Karan 5404720408
feat(releases): map env variables in YAML to enable electron-mirror 2019-11-08 10:28:29 -08:00
Shobhit 973db306b8
feat(electron-release): add grunt task to update appinsights key for electron app (#1635)
Introduces one more task in our electron-builder.yml; this injects canary key into our electron build.
2019-11-07 17:54:08 -08:00
Karan 7187b5ea52
refactor: move platform electron installers to separate build (#1607) 2019-11-01 16:10:27 -07:00
Karan 6e2e421392
chore: fix invalid job name in sample electron yaml & refactor to avoid duplicate node-prereq (#1605) 2019-11-01 14:18:37 -07:00
Karan 78a4130f11
chore: sample product build yaml (#1602) 2019-11-01 13:28:08 -07:00
Shobhit e7cffa0f4d
fix: e2e failures on windows hosted agents (#1141)
* fix build failures

* fix formatting for readme

* stick to node 10.16.3 LTS

* update Readme

* pinning versions of yarn
2019-08-26 13:10:56 -07:00
Dan Bjorge d44fadf977
chore: Update typescript to 3.5.3 (#1074)
Updates typescript to the latest stable version.

The notable ancillary changes this required were:

* This update increased the amount of memory used by webpack-all to a tipping point where it began occasionally crashing without finishing. Uses `grunt-concurrent` to have build:all run 3 instances of webpack rather than 1 instance of webpack building 3 configs
* Document.getElementsByTagName was updated to return `HTMLCollectionOf<Element>` instead of `NodeListOf<Element>`; there was a cascading series of type and test updates in response to this
* `MessageEvent`s were generalized to allow events from more than just `Window`s as sources; updated `window-message-handler` with an `e.source as Window`, since it knows it will only register to receive messages from `Window`s.
* Removed a few obsolete `tsconfig.json` entries that were tripping up the new version (in particular, `extendedDiagnostics: true` *actually* causes tsc to emit diagnostics way more verbose than we want in the updated version

To test build reliability with the changes, also introduces a new `build-reliability` pipeline similar to the existing `e2e-reliability` one.
2019-08-15 15:39:08 -07:00
Dan Bjorge 3fecfc03e5
test: re-enable e2e tests on PR builds (#1013)
Extracts the e2e-test-pre-environment block from e2e-reliability.yaml into a separate template file
Adds one e2e run to PR builds
2019-08-07 15:54:27 -07:00
Karan 77afd5387a
Build mac executables in ADO (#1017) 2019-08-06 14:29:27 -07:00
John Alkire db9bc01ac4
Add cross platform electron e2e tests to PR build (#1015)
PR #1001 added some electron e2e tests. This PR runs those tests on mac, linux, and windows as a part of the PR/CI builds. Since the linux agents appear to be non-interactive, we have to use xvfb to run tests on them.
2019-08-06 10:16:26 -07:00
Dan Bjorge 2dd4f15bf9
test: run result publishing steps to even when previous steps failed (#984)
Sets up the docker-specific parts of gathering failure screenshots to still execute when the tests fail.

Also updates the more general results publishing task to work consistently with them and not run if the pipeline is cancelled (that's the difference between always() and succeededOrFailed().
2019-07-29 14:36:43 -07:00
Sebastian Morales b0ded258e9
test: using variable for the pool image values (#964)
The image name is repeated throughout the yaml file. Using a variable for each system reduces the duplication to a minimum.
2019-07-24 10:40:12 -07:00
Dan Bjorge fcac95c6a6
test: fix Windows-hosted-agent-specific "Page crashed!" puppeteer errors (#958)
We were seeing our Windows hosted Pipelines agents hit "Page crashed!" errors somewhat reliably (~50% of e2e runs). I added functionality to collect detailed chrome logs and crash dumps and collect them as part of our published e2e results, but adding this actually fixed the issue. After some experimentation, I think the key to fixing it was in specifying a custom userDataDir launch parameter to chromium that uses a temporary userDataDir under our test-results folder, rather than deferring to Puppeteer's default behavior of putting it in the system %TEMP% directory. I'm not sure why this fixes the problem; maybe some sort of permissions issue, maybe some sort of overaggressive cleanup of the temp folder while the test is still running.

Validated that 15x runs on Windows with the userDataDir in place never saw the "Page crashed!" issue. Prior to this fix, we see it in about 50% of runs.

Out of scope: other buckets of e2e flakiness issues. In particular, it's expected that there will be some e2e-reliability failures still in the checks section of this PR (but none of them should be "Page crashed!" errors)
2019-07-17 16:57:35 -07:00
Dan Bjorge 5223064e14
test: use latest windows hosted agent version in e2e-reliability runs (#955)
We tried updating to the latest agent version to see if it had any impact on reducing page crash rates compared to the older agents. It didn't impact page crash rate, but it improved performance 5-10%, so we'll take it anyway as we continue to test other options for fixing the page crashes.
2019-07-16 15:44:28 -07:00
Dan Bjorge ae20573083
test: temporarily disable e2e tests from PR/CI gates until we can resolve flakiness (#954)
Since the recent change to run them in linux/windows, the e2e test suite has proven too flaky to use as a PR/CI gate. This change temporarily moves the flaky tests out of the required suite in build.yaml and into a 5x-per-environment run in a separate e2e-reliability.yaml instead, which will be set up to run as a non-required gate only in those PRs/branches working on e2e updates/fixes.

We'll be prioritizing improving the flakiness and getting the runs re-enabled as required checks as part of #867.
2019-07-16 13:14:30 -07:00
Dan Bjorge 121bcc568e
chore: remove unnecessary -- args to "yarn run" to fix build warnings (#931)
Before this change, the windows E2E test logs showed the following warning:

```
warning From Yarn 1.0 onwards, scripts don't require "--" for options to be forwarded. In a future version, any explicit "--" will be forwarded as-is to the scripts.
```

This addresses it in the CI build and also in our README suggested commands (I searched the codebase for uses of the string ` -- `)
2019-07-10 14:36:36 -07:00
Dan Bjorge 1c1233e387
refactor: separate e2e result publishing with separate artifacts per job (#921)
Noticed that the new e2e tests were accidentally using the same names for test run titles and failure screenshot artifacts, which made it hard to tell which was which in the pipelines results page. This refactors the common result publishing logic to a common place and makes the names/artifacts be based on job name so they'll be distinct between environments.
2019-07-09 13:55:45 -07:00
Shobhit 6078af2b28
chore: run e2e tests as part of PR build process on ubuntu (#907)
* separate out cosmetic code tests and add ubuntu e2e job

* remove code formatting test yaml and change a little bit in drop job

* one solution for avoid drop failure

* change the way i was running builds on different environment

* try to run headful on ubuntu run for build

* push executable path

* push executable path

* add mac and windows support to the build

* undo package.json change

* try changing the ubuntu version to 18.04

* revert to 16.04 ubuntu

* Merge master changes

* try scripting for linux

* try scripting for linux

* change some build structure to test more stuff

* reduce a little bit of parallelization and change windows hosted machine

* reduce a little bit of parallelization and change windows hosted machine

* change the build agent for unit test job for comparison

* change name of mac image - typo

* change name of mac image - typo

* change name of mac image - typo

* update macOS hosted agent version

* try docker

* try docker

* try docker

* Remove --network parameter from docker command

* Remove -t parameter from docker command

* changes to Dockerfile

* add dockerignore to speed up perf for docker steps

* copy test-results from docker back to application agent

* get container id from docker to run copy command

* give container id and docker cp another try

* try and figure out the correct path for the container test-results e2e folder

* stip down docker copy for even better perf


* separate out docker steps into a different yaml to be more clear in our build steps

* copy before yarn dev command

* minor changes in name and sequence of commands

* PR comment on better comments and better explanations

* change some descriptions for jobs

* make changes based on PR comments
2019-07-09 13:13:10 -07:00
Peter Durham e4353c1201
Revert "building the web extension only (#881)" (#911)
Investigation suggests #910 (report CSS broken in Canary) was introduced by #881
2019-07-05 17:08:58 -07:00
Sebastian Morales 649f12d265 building the web extension only (#881)
* building the web extension only

* building electron app on a new job
2019-07-03 15:48:11 -07:00
Shobhit f7c93de4da
chore: Introduce Yarn as our package manager (#647)
* move stuff to yarn

* change build.yaml

* change build to work better

* change name of installation task

* change more stuff from npm to yarn

* make some more simple changes

* run npm upgrade

* remove unncessary changes

* update yarn.lock

* try -frozen-lockfile param

* testing with a minor change to trigger build again

* update readme

* fix formatting

* update documentation

* remove package-lock from prettierignore since the file doesn't exist anymore

* change version and other pr comments

* change occurance of npm

* change workflow.md

* update setup file

* update setting up vscode document
2019-05-06 11:10:22 -07:00
Sebastian Morales 20ff9c1fc0 Build pipeline improvements (#452)
* Add prerequisites yaml file

* Add e2e test yaml file

* format yaml files

* Move copyright headers up

* update comment to clarify why we need to run build:all before running e2e test
2019-03-27 15:39:33 -07:00