Docs
Code Review & Continuous Integration

Code review & continuous integration

By combining Hashboard's CLI and preview features, you can integrate your entire BI stack into a continuous integration workflow. You can even preview data changes in upstream pipelines and see how they will affect your dashboards and reporting.

Overview

The ideal CI/CD flow for your team depends on the specifics of your development lifecycle and business goals. Here is a suggested framework to get you started:

  1. Decide which kinds of changes in your data stack you want to include in your continuous integration process. Two common strategies are:
  • Validate data changes only. Changes to upstream pipelines and data models are reviewed and tested with a pull request and then are deployed automatically when the change is approved and merged. Changes to downstream Hashboard resources like Explorations and Dashboards are made through the Hashboard UI. This is a good choice if your Hashboard users are mostly non-technical, or changes to Dashboards are relatively low risk.
  • Validate a vertical slice of resources. Changes to a specific set of Models, Explorations, Metrics, and Dashboards are reviewed as pull requests and then deployed together when the change is approved and merged. This is a good choice if you want tight governance over your entire BI stack. Common examples include deploying dashboards to external customers and developing BI in highly regulated industries.
  1. Define your governed Hashboard resources as yml configs in your git repo. We recommend adding these files alongside your data pipeline business logic, such as your dbt models. For a dbt-focused workflow, this might be limited to adding Hashboard metadata to your dbt models. (See dbt Integration for more details.)

  2. Configure your pull requests to automatically generate Hashboard builds for proposed changes using a GitHub Action (or similar mechanism).

  3. Configure your deployment job to automatically generate and apply a Hashboard build whenever you want to trigger a deployment (for instance, when a new commit is pushed to your main branch).

GitHub Action templates

Below are sample GitHub Actions you can use to implement the workflow described above.

Hashboard-only

Hashboard + dbt