Challenge Overview
For the Hercules client, we build a lot of web apps that run on an embedded environment. The web browser used on the embedded system is older and has compatibility issues with modern desktop browsers. This means we spend a lot of time working through compatibility issues.
In an effort to catch these issues earlier, we have generated a build of the embedded browser that includes Selenium support. To fully support automated testing and continuous integration, we need to somehow integrate this build into automated tests on the Gitlab CI platform.
Gitlab CI
https://docs.gitlab.com/ce/ci/
Your documentation and tested setup needs to cover configuring Gitlab CI to do these steps on every check-in for a simple Node test project that you define:
* Get the code
Gitlab CI runner
We can use custom runners for the project. You are encouraged to build the Selenium QTBrowser for Linux and just copy it in, instead of building it as part of the runner. I don't want to have to do extra work like that every time the tests run, if we can avoid it.
Documentation
Your deployment instructions must contain information on how to do the steps necessary to configure the browser and tests in Gitlab, including information on how to run the tests, see the output, etc...
Video
Gitlab CI
https://docs.gitlab.com/ce/ci/
Your documentation and tested setup needs to cover configuring Gitlab CI to do these steps on every check-in for a simple Node test project that you define:
* Get the code
* Install the dependencies
* Run the tests and lint
* Deploy to Heroku if tests pass
Sample application for testing purposes:
Your sample Node web application can be simple, and only a few simple UI-based tests are required for validation:
* Ensure a page loads and displays
* Ensure the arrow keys on the keyboard work
* Ensure the "Enter" key on the keyboard works
* Ensure the "Esc" key on the keyboard works
Our normal apps that run in the embedded environment don't use mouse navigation - they are navigated by a remote controls, so the arrows are used to select content, "Enter" goes into the content, and "Esc" goes back. There are other keys as well, but for the purposes of this proof of concept, that's all we need.
* Deploy to Heroku if tests pass
Sample application for testing purposes:
Your sample Node web application can be simple, and only a few simple UI-based tests are required for validation:
* Ensure a page loads and displays
* Ensure the arrow keys on the keyboard work
* Ensure the "Enter" key on the keyboard works
* Ensure the "Esc" key on the keyboard works
Our normal apps that run in the embedded environment don't use mouse navigation - they are navigated by a remote controls, so the arrows are used to select content, "Enter" goes into the content, and "Esc" goes back. There are other keys as well, but for the purposes of this proof of concept, that's all we need.
Gitlab CI runner
We can use custom runners for the project. You are encouraged to build the Selenium QTBrowser for Linux and just copy it in, instead of building it as part of the runner. I don't want to have to do extra work like that every time the tests run, if we can avoid it.
Documentation
Your deployment instructions must contain information on how to do the steps necessary to configure the browser and tests in Gitlab, including information on how to run the tests, see the output, etc...
Video
No video is required for this challenge