Test your changes with Lightdash compile
If you’ve connected Lightdash to GitHub, you can setup a github action
and get Lightdash to compile your project and test your changes whenever you open a pull request.
Adding this Lightdash compile action will compile your dbt project’s .yml files and check to see if there are any errors that will break your Lightdash project. For example, a metric that references a dimension that doesn’t exist.
Step 1: add the credentials to Github secrets
We are going to add some secrets and config to GitHub actions, but you don’t want those to be public, so the best way to do this is to add them as secrets on Github.
If you already have a GitHub action for Lightdash, then you can use the same Lightdash secrets you created for your other action.
Go to your repo, click on Settings
, on the left sidebar, click on Secrets
under Security
. Now click on the New repository secret
We need to add the following secrets:
LIGHTDASH_API_KEY
Create a new personal access token, by going to Settings
> Personal Access Tokens
. This is the token you’ll put in for LIGHTDASH_API_KEY
.
LIGHTDASH_PROJECT
The UUID for your project. For example, if your URL looks like https://eu1.lightdash.cloud/projects/3538ab33-dc90-aabb-bc00-e50bba3a5f69/tables
, then 3538ab33-dc90-45f0-aabb-e50bba3a5f69
is your LIGHTDASH_PROJECT
LIGHTDASH_URL
This is either https://eu1.lightdash.cloud
or https://app.lightdash.cloud
for Lightdash Cloud users (check the URL to your Lightdash project). If you self-host, this should be your own custom domain.
DBT_PROFILES
Some tips for this bit:
- You might be able to copy a bunch of the information from your local
profiles.yml
file. You can see what’s in there by typingcat ~/.dbt/profiles.yml
in your terminal. - If you have a separate
prod
anddev
profile, you probably want to use the information from yourprod
profile for your GitHub action. - If you want to have different connection settings depending on the user that opened the pull request (dev profiles), then check out this guide.
Find your data warehouse from the list below to get a profiles.yml file template. Fill out this template, and this is your DBT_PROFILES
secret.
Step 2: Create deploy.yml workflow in Github
Go to your repo, click on Actions
menu.
If you don’t have any GitHub actions, you’ll just need to click on Configure
If you have some GitHub actions in your repo already, click on New workflow
, then select setup a workflow yourself
.
Now copy this file from our cli-actions repo.
If you only use a subset of your dbt models in Lightdash, then you’ll want to specify that subset in your file here.
For example, to only compile models with the tag lightdash
, you would change this line to: run: lightdash compile --select tag:lightdash --project-dir "$PROJECT_DIR" --profiles-dir . --profile prod || lightdash compile --select tag:lightdash --project-dir "$PROJECT_DIR" --profiles-dir .
Give it a nice name like compile-lightdash.yml
And commit this to your repo by clicking on Start commit
.
You’re done!
Everytime you open a new pull request on the repository that contains your Lightdash project, lightdash compile
will run and check to see if any of the changes you made will break your Lightdash instance.
You can see the log on the Github actions
page