Publish DBT Docs on Github Pages using Github Actions
The DBT project example that might be familiar to DBT users, jaffle_shop
fictional ecommerce store, was forked, extended and is used to demonstrate the setup, that makes use of dbt-duckdb adapter to keep things simple.
Live example can be checked here.
Github Actions Workflow
Full code:
yaml
# .github/workflows/pages.yml
name: "dbt docs"
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: pip3 install dbt-core dbt-duckdb
- run: dbt --version
- name: DBT compile
run: |
export DBT_PROFILES_DIR=$PWD
dbt deps
dbt seed
dbt debug
dbt compile
- name: DBT docs generate
run: |
export DBT_PROFILES_DIR=$PWD
dbt deps
dbt docs generate
cd target
mkdir -p ${{ github.workspace }}/_site
cp *.json *.html *.gpickle ${{ github.workspace }}/_site
- uses: actions/upload-pages-artifact@v2
deploy:
needs: build
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2
# .github/workflows/pages.yml
name: "dbt docs"
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: pip3 install dbt-core dbt-duckdb
- run: dbt --version
- name: DBT compile
run: |
export DBT_PROFILES_DIR=$PWD
dbt deps
dbt seed
dbt debug
dbt compile
- name: DBT docs generate
run: |
export DBT_PROFILES_DIR=$PWD
dbt deps
dbt docs generate
cd target
mkdir -p ${{ github.workspace }}/_site
cp *.json *.html *.gpickle ${{ github.workspace }}/_site
- uses: actions/upload-pages-artifact@v2
deploy:
needs: build
permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v2