![Ghanshyam Mann](/assets/img/avatar_default.png)
As per victoria cycle testing runtime and community goal[1] we need to migrate upstream CI/CD to Ubuntu Focal(20.04) and Node.js 10. Tox is not anymore pre-installed on the OpenDev CI images. The file package.json needs tox, install it to fix the nodejs-job. Install it via a pre-run playbook so that this is run in addition to all of the playbooks of the parent. This patch also update python version to py38 in package.json[2] as py36 is not available on focal. Note: Before this patch We used nodejs8-jobs from openstack-zuul-jobs which consumes npm jobs from zuul-jobs. We would like to install tox in the 'pre-run' phase in each npm job, so this patch also defines npm job defination here. Story: #2007865 Task: #40212 [1] https://governance.openstack.org/tc/goals/selected/victoria/migrate-ci-cd-jobs-to-ubuntu-focal.html [2] https://opendev.org/openstack/stackviz/src/branch/master/package.json#L73 Co-Author: manchandavishal <manchandavishal143@gmail.com> Change-Id: I116ea1609f88496c599a8285d33350104067c517
Team and repository tags
StackViz
A visualization utility to help analyze the performance of DevStack setup and Tempest executions. This repository can be cloned and built to use Stackviz with local run data. Stackviz is currently in the process of being implemented upstream (see Roadmap and Planning). To use Stackviz with upstream gate runs, please see the server deployment project at:
Installation
Installation - Frontend
Installation of the frontend requires Node.js and Gulp. On Ubuntu:
sudo apt-get install nodejs npm nodejs-legacy
sudo npm install -g gulp
Then, install the Node modules by running, from the project directory:
npm install
Installation - Processing
The data processor is a small Python module located in the same source tree. To install, run:
sudo pip install .
Usage
Usage - Development
A development server can be run as follows:
gulp dev
This will open a web browser and reload code automatically as it changes on the filesystem.
If you have subunit and dstat logs, you can create a config.json to display your runs:
stackviz-export -f <path/to/subunit> --dstat <path/to/dstat> app/data/
During gulp dev
, files written to app/data/
will be automatically synchronized with the browser. Note that these
files will not be copied to build/
during
gulp prod
, but you can copy them manually using
gulp data
.
Usage - Production
The production application can be build using:
gulp prod
This will automatically build portable html/javascript and python
utilities into dist/stackviz-VERSION.tar.gz
.
You should probably install this into a virtualenv
on
the target system:
virtualenv stackviz
./virtualenv/bin/pip install /path/to/stackviz-VERSION.tar.gz
# to run stackviz export
./virtualenv/bin/stackviz-export
Note the required html will be placed in
virtualenv/share/stackviz-html
as a data-file (or
elsewhere, if installed as a system package; this may vary on
distributions). This can be moved as required. Note that all files in
there are not required:
- Directory structure (
js/
,css/
,fonts/
,images/
): required. - Static resources (
fonts/
,images/
): required. - Core files (
index.html
,js/main.js
,css/main.css
): required unless gzipped versions are used. - Gzipped versions of core files (
*.gz
): not required, but preferred. Use instead of plain core files to save on disk usage and bandwidth. - Source maps (
js/main.js.map
,js/main.js.map.gz
): only required for debugging purposes.
Data should be written to stackviz-html/data/
using
stackviz-export
like above.
Testing
- Python tests:
tox -e py36
- JavaScript unit tests:
gulp unit
- JavaScript E2E tests:
gulp e2e
Manuals & Developer Docs
For more detailed information on how Stackviz works, please see the manuals located at doc/source/man/
Roadmap and Planning
- Planning: https://etherpad.openstack.org/p/stackviz
- Gate integration planning: https://etherpad.openstack.org/p/BKgWlKIjgQ