Skip to content

pingworks/dash

Repository files navigation

                                  https://dash.pingworks.net
    DASH                          http://www.pingworks.de/dash
                                  mailto:dash@pingworks.de
---------------------------------------------------------------

A simple dashboard application to visualize the test results
from continuous delivery pipelines.

While you are implementing a continuous delivery pipeline for your
software project you are trying to automate most of the tests to
have fast and continuous feedback about the quality.
The automated tests can be organized in several test stages to
group similar testtypes.
As every commit should trigger your continuous delivery pipeline
this will give you a huge amount of test results which sometimes
makes it hard to see which commit has broken which test.

Building dashboards is one way to aggregate the data and make it
easier for the developers to find the regressions they have
caused with their commit.

This application is build of three different components:


dash-scripts
------------
This is a set of scripts used to bundle the binary artifacts which
are created in continuous delivery pipeline.  The binary artifacts
from different modules can be bundled to one consistent archive which
can additionally hold some useful metainformation.
Each archive has a simple directory structure inside:

/data/repo
        + trunk
            + 2.1234.23
                + artifacts
                    + fobar.jar
                    + app.rpm
                + metadata
                    + bundle (contains "2.1234.23")
                    + branch (contains eg. "trunk")
                    + status (contains eg. "first_stage_passed",
                              "second_stage_failed")
                + bundle
                    + full_bundle.tar.gz (tar.gz containing a subset
                                          of artefacts)
                    + src_bundle.tar.gz

The set of bash scripts supports subversion and git.

dash-backend
------------
A simple backend written in PHP which exposes a JSON REST API to deliver
the metadata from the builds to the frontend.
The backend application is based on the Zend-Framework [1], reads the metadata
from above and converts it to the JSON format to be read by the frontend code.

dash-frontend
-------------
The frontend is creating a visualisation of the testresults for each bundle or
pipeline run based on the JSON information received from the backend. It is
using the ExtJS Framework.

Development environment
-----------------------
There is some documentation available how to setup a development environment in
the docs folder, but there also is a separate repository [3] available which
contains a chef cookbook and a matching Vagrantfile to do it for you.

[1] http://framework.zend.com
[2] http://sencha.com/products/extjs
[3] https://github.com/pingworks/chef-dash


The dashboard code is licensed under the Apache Software License 2.0.

Copyright 2013 pingworks - Alexander Birk und Christoph Lukas

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


Sencha ExtJS is distributed under GPL v3, with an Open Source License
Exception for Applications:
http://www.sencha.com/legal/open-source-faq/open-source-license-exception-for-applications/
If you customise or redistribute the dashboard code that uses ExtJS
components, then you must comply to their open source licenses - or
buy an appropriate developer license from Sencha.


Jasmine included in frontend/test/lib/jasmine-1.3.1:
Copyright (c) 2008-2011 Pivotal Labs and Licenced
MIT License, see: frontend/test/lib7jasmine-1.3.1/MIT.LICENSE


Phantomjs Testrunner and Jasmine JUnit Reporter included in
frontend/test/lib:
Copyright (c) 2010 Larry Myers
MIT License, see:
https://github.com/larrymyers/jasmine-reporters/blob/master/LICENSE