Merge pull request #296 from godatadriven/add-in-the-wild-section #103
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
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-22.04 | |
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-22.04 | |
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-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: | |
- '3.9' | |
- '3.10' | |
- '3.11' | |
- '3.12' | |
- '3.13' | |
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-22.04 | |
- windows-latest | |
python-version: | |
- '3.9' | |
- '3.10' | |
- '3.11' | |
- '3.12' | |
- '3.13' | |
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 |