This is all the software needed to replicate the private lab environment used to build and test Shaka Player, Shaka Packager, and others.
- Speedy recovery after a disaster (disk corruption, exploding battery, etc)
- Allow partners to replicate and contribute to our testing infrastructure
- Replace aging, incomplete manual setup docs with version-controlled code
The Shaka Lab is composed of a Selenium grid and other services running on multiple devices and operating systems. Below are links to dedicated docs on each package.
Setup involves installing relevant OS packages, editing configuration files, and restarting services. The available packages, config file locations, and service commands vary by OS.
Package systems:
- For Linux, Debian/Ubuntu packages
- For Windows, Chocolatey packages
- For macOS, Homebrew formulae
Everything in this repo is licensed under Apache license v2.0.
- Shaka Lab Recommended Settings: Recommended OS settings for lab devices
- Shaka Lab Browsers: All major browsers, simplifies Selenium node setup
- Shaka Lab Hub: Selenium grid hub (Linux only)
- Shaka Lab Node: Selenium grid nodes
- Shaka Lab Gateway: Lab gateway (DHCP, DNS, AD, routing)
- Shaka Lab Gateway Client: Central lab user login
- Shaka Lab Cert Generator: Automated certificates for HTTPS-based testing
- Shaka Lab Cert Receiver: A service account to receive certs generated by another device
- Shaka Lab GitHub Runner: Self-hosted GitHub Actions runners
Here you can find documentation for the various packge distribution systems used, and their setup on GitHub. You can read these to understand how packages get distributed, or to help you debug issues with distribution.
If you want to deploy packages from a fork, you will need to read these and follow the setup steps in each document. Without those steps, the release workflow will not work.