Skip to content

Merge pull request #258 from godatadriven/correct-snapshot-config #72

Merge pull request #258 from godatadriven/correct-snapshot-config

Merge pull request #258 from godatadriven/correct-snapshot-config #72

---
name: Merge pipeline
on:
push:
branches:
- main
env:
DBT_PROFILES_DIR: dbt_project
DBT_PROJECT_DIR: dbt_project
POETRY_VERSION: "1.8.3"
POETRY_VIRTUALENVS_IN_PROJECT: true
jobs:
deploy-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Fetch tags
run: git fetch --prune --unshallow --tags
- name: Determine python version
id: python-version
run: |
export PYTHON_VERSION=$(cat .python-version)
echo "PYTHON_VERSION: $PYTHON_VERSION"
echo "PYTHON_VERSION=$PYTHON_VERSION" >> $GITHUB_OUTPUT
- name: Setup Python
uses: ./.github/actions/setup_python_env
with:
poetry-version: ${{ env.POETRY_VERSION }}
python-version: ${{ steps.python-version.outputs.PYTHON_VERSION }}
- name: Deploy docs website
run: |
git config --global user.email "[email protected]"
git config --global user.name "github-actions[bot]"
poetry run mike deploy --push --update-aliases latest
docker-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Determine python version
id: python-version
run: |
export PYTHON_VERSION=$(cat .python-version)
echo "PYTHON_VERSION: $PYTHON_VERSION"
echo "PYTHON_VERSION=$PYTHON_VERSION" >> $GITHUB_OUTPUT
- name: Setup Python
uses: ./.github/actions/setup_python_env
with:
poetry-version: ${{ env.POETRY_VERSION }}
python-version: ${{ steps.python-version.outputs.PYTHON_VERSION }}
- name: Install `pex`
run: pip install pex
- name: Build .pex file
run: make build-pex
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build image
uses: docker/build-push-action@v6
with:
build-args: PYTHON_VERSION=${{ steps.python-version.outputs.PYTHON_VERSION }}
cache-from: type=gha
cache-to: type=gha,mode=max
context: .
load: true
push: false
tags: dbt-bouncer:test
- name: Run e2e test
run: |
docker run --rm \
--volume "$PWD":/app \
dbt-bouncer:test \
--config-file /app/dbt-bouncer-example.yml
pex-tests:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version:
- '3.8'
- '3.9'
- '3.10'
- '3.11'
- '3.12'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Determine python version
id: python-version
run: |
export PYTHON_VERSION=$(cat .python-version)
echo "PYTHON_VERSION: $PYTHON_VERSION"
echo "PYTHON_VERSION=$PYTHON_VERSION" >> $GITHUB_OUTPUT
- name: Setup Python
uses: ./.github/actions/setup_python_env
with:
poetry-version: ${{ env.POETRY_VERSION }}
python-version: ${{ matrix.python-version }}
- name: Install `pex`
run: pip install pex
- name: Build .pex file
run: make build-pex
- name: Run `dbt-bouncer`
run: python ./dist/dbt-bouncer.pex --config-file dbt-bouncer-example.yml
pip-tests:
runs-on: ${{ matrix.operating-system }}
strategy:
fail-fast: false
matrix:
operating-system:
- ubuntu-latest
- windows-latest
python-version:
- '3.8'
- '3.9'
- '3.10'
- '3.11'
- '3.12'
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: ./.github/actions/setup_python_env
with:
poetry-version: ${{ env.POETRY_VERSION }}
python-version: ${{ matrix.python-version }}
- name: Install `dbt-bouncer`
run: pip install git+https://github.com/godatadriven/dbt-bouncer.git@${{ github.sha }}
- name: Run `dbt-bouncer`
run: dbt-bouncer --config-file dbt-bouncer-example.yml
- name: Regenerate dbt artifacts and run `dbt-bouncer`
if: matrix.operating-system == 'windows-latest'
run: |
$env:Path += ';C:\Users\runneradmin\.local\bin'
poetry run dbt deps
poetry run dbt build
poetry run dbt docs generate
poetry run dbt-bouncer --config-file ./dbt-bouncer-example.yml
- name: Regenerate dbt artifacts and run `dbt-bouncer`
if: matrix.operating-system != 'windows-latest'
run: |
poetry run dbt deps
poetry run dbt build
poetry run dbt docs generate
poetry run dbt-bouncer --config-file ./dbt-bouncer-example.yml