Skip to content

Commit

Permalink
Adding e2e test
Browse files Browse the repository at this point in the history
  • Loading branch information
pgoslatara committed Jun 29, 2024
1 parent 72aae4d commit 89eec08
Showing 1 changed file with 81 additions and 3 deletions.
84 changes: 81 additions & 3 deletions .github/workflows/ci_pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,17 @@ on:
branches:
- main

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
IMAGE_NAME: ${{ github.repository }}
POETRY_VERSION: "1.7.1"
REGISTRY: ghcr.io

jobs:
pre-commit:
name: Run pre-commit
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down Expand Up @@ -51,8 +56,7 @@ jobs:
- name: Run pre-commit
run: poetry run pre-commit run

ci_pipeline:
name: CI Pipeline
unit-tests:
needs: [pre-commit]
runs-on: ubuntu-latest
permissions:
Expand Down Expand Up @@ -116,3 +120,77 @@ jobs:
title: Coverage Report
badge-title: Coverage
junitxml-path: ./coverage.xml

e2e-tests:
needs: [pre-commit]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Python
id: setup-python
uses: actions/setup-python@v5

- name: Load cached Poetry installation
id: cached-poetry
uses: actions/cache@v4
with:
path: /home/runner/.local
key: poetry-cache-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ env.POETRY_VERSION }}

- name: Install Poetry
if: steps.cached-poetry.outputs.cache-hit != 'true'
uses: snok/install-poetry@v1
with:
installer-parallel: true
version: ${{ env.POETRY_VERSION }}
virtualenvs-create: true
virtualenvs-in-project: true

- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v4
with:
path: .venv
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}

- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-ansi

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=ci
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- 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: Build and push image
id: push
uses: docker/build-push-action@v5
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

- name: Run e2e test
run: |
docker run --rm \
--volume "$PWD/dbt_project":/app/dbt_project \
dbt_bouncer:ci \
poetry run dbt_bouncer --dbt-project-dir dbt_project

0 comments on commit 89eec08

Please sign in to comment.