commit | 83c6523ca7cfaa708c2ac848c7cbd408f75d5c2a | [log] [tgz] |
---|---|---|
author | Mathieu Binette <mbinette@google.com> | Tue Apr 09 01:33:40 2019 |
committer | Fei Ling <feiling@chromium.org> | Wed Apr 10 19:59:30 2019 |
tree | 951a968368628aafb9042b418be9c82ffdc6f7d0 | |
parent | 78360cb7a8db1058c59bca604b285ae0ba2d9de4 [diff] |
Disable Windows Update on NestedVMs. Our NestedVMs sometime fail to restart (~10%) after Rename-Computer, which means our tests fail because the machine name isn't updated. Looking into it further, it seems Windows is stuck on the "Restarting..." step. Event logs are not very helpful either - just silence after receiving the shutdown signal, no errors. After researching this a bit, it seems this could be caused by Windows Update hanging, so I tried to stop the service and that failed about 10% of the time. That 10% were also instances in which we hang on "Restarting...". Added code to force kill Windows Update when it doesn't want to stop. Seems to do the trick - each of those runs is a 10x NestedVM test: https://ci.chromium.org/p/celab/builders/try/tests/b8916854394150487984 // unrelated failure https://ci.chromium.org/p/celab/builders/try/tests/b8916848606918694496 https://ci.chromium.org/p/celab/builders/try/tests/b8916805527896518080 https://ci.chromium.org/p/celab/builders/try/tests/b8916801503262491568 https://ci.chromium.org/p/celab/builders/try/tests/b8916791198566155952 Also: - Merged the two Deploy methods so they have a similar steps order because it was confusing to keep track of when different steps (e.g. Prepare) were being called on nested VMs vs normal instances. - Slightly improved logging. Change-Id: Id350a86bbe3767c2a74eee6d8aa730a000a720a0 Reviewed-on: https://chromium-review.googlesource.com/c/enterprise/cel/+/1557582 Reviewed-by: Fei Ling <feiling@chromium.org>
Chrome Enterprise Lab is an inaccurately named set of tools for building enterprise labs quickly and easily. The labs so built can be used for system level end-to-end testing of Google Chrome/Chromium.
Have a peek at the Design document.
Also have a peek at the Code of Conduct.
Most of the code is in Go. See Guide to code to get a head start on the code in this repository.
Go: Download Go from the Go download page. This project requires Go 1.9.4 or later. The build will fail with prior versions.
Depot Tools: Used for managing the checkout and the contributor workflow.
Protocol Buffers Compiler: Protocol buffers are used extensively for wranging all the data that needs to be shuttled around. Can be installed automatically via ./build.py deps --install
.
Dep : Used for Go depedency management. This can be installed automatically by running ./build.py deps --install
from the root of the source tree.
Go support for Protocol Buffers : This can be installed automatically by running ./build.py deps --install
from the root of the source tree.
absl-py: This Python package is used by tests. Install it by running pip install absl-py
.
There are two ways to get the source. One is to use managed deps, and the other is to use plain go get
. The latter workflow doesn't quite work yet due to this repository not being integrated with go.chromium.org
. So this page only mentions the managed dependency workflow.
Clone this repository:
Assumes that $GOPATH
is a single path and not a :
delimited list.
mkdir -p ${GOPATH}/src/chromium.googlesource.com/enterprise cd ${GOPATH}/src/chromium.googlesource.com/enterprise git clone https://chromium.googlesource.com/enterprise/cel cd cel
Get the dependencies:
python build.py deps --install
Use the build script:
python build.py build
Also make sure the tests pass.
python build.py test
See CONTRIBUTING.