infra: Move ci/try jobs from Ubuntu-18.04 to Ubuntu-22.04

These are the last remaining jobs on the last remaining bionic pools.
Moving these over should let the bionic flex pool finally be decommed.

All of chrome/chromium has been on Ubuntu-22.04 for months now. So
hopefully this is transparent for celab.

Bug: chromium:40255350
Change-Id: I653f0bf9b431d7acd91863b4441d3e9ea8709f3c
Reviewed-on: https://chromium-review.googlesource.com/c/enterprise/cel/+/5552065
Reviewed-by: Xiang Ji <jxiang@google.com>
9 files changed
tree: 2ce86e9a256472aa9388714157f96d2fc9e190fb
  1. build/
  2. docs/
  3. examples/
  4. go/
  5. infra/
  6. resources/
  7. schema/
  8. scripts/
  9. test/
  10. .gitignore
  11. .style.yapf
  12. .vpython3
  13. build.py
  14. CODE_OF_CONDUCT.md
  15. codereview.settings
  16. CONTRIBUTING.md
  17. go.mod
  18. go.sum
  19. LICENSE
  20. navbar.md
  21. OWNERS
  22. PRESUBMIT.py
  23. README.md
  24. VERSION
  25. WATCHLISTS
README.md

Chrome Enterprise Lab

Chrome Enterprise Lab is a set of tools for building enterprise experimental labs quickly and easily. The labs so built can be used for system level end-to-end testing of Google Chrome/Chromium. These system tests are required to avoid enteprise regression under some complex enterprise software & networking configurations, such as Microsoft Active Directory.

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.

Building

Prerequisites

  • Go: Download Go from the Go download page. This project requires Go 1.18.1. Using other golang build might cause build or test failures.

  • 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. Run protoc --version to check the protoc version. The protoc version should be at least 3.5.1. If protoc is not installed, install it from command line:

    sudo apt install -y protobuf-compiler
    
  • python: python should be on most systems. check by running python --version if that doesn't work try python3 --version if you have python3 install this to make it your primary version: sudo apt-get install python-is-python3

  • pip: python‘s package manager. make sure you have it by typing pip in your terminal. if you don’t: sudo apt-get install pip

  • absl-py: This Python package is used by tests. Install it by running pip install absl-py.

Get The Source

  1. Setting GO environment variables by adding below lines into ~/.bashrc file

    export GOPATH=$HOME/go
    export GOBIN=$GOPATH/bin
    export PATH=$PATH:$GOBIN
    
  2. 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
    

Build It

  1. Pull dependencies

    python3 build.py deps --install
    
  2. Use the build script:

    python3 build.py build
    

    If you see an error message like google/protobuf/descriptor.proto: File not found, see the protoc prerequisites (specifically the includes step).

  3. Also make sure that all unit tests for the Go source files are passing.

    python3 build.py test
    

Contributing

See CONTRIBUTING.

Release

The CELab deployment binary and its Python test framework is uploaded into CIPD as a package.

Here are the general steps to release the package.

  1. After the code review, merge in the change
  2. Wait for windows CI build finished (https://ci.chromium.org/p/celab/g/Main%20Console/console)
  3. Run upload_to_cipd with the link to binaries in the CI build (instructions here: https://chromium.googlesource.com/enterprise/cel/+/refs/heads/main/scripts/cipd)
  4. (Optional) Check the output of that command and update the infra version in the .vpython file for your app