Skip to content

fix unit tests pointing to a databricks workspace outside of vpn #30

fix unit tests pointing to a databricks workspace outside of vpn

fix unit tests pointing to a databricks workspace outside of vpn #30

name: Deploy flights_project to TEST with liquibase
concurrency: 1
on:
workflow_dispatch:
pull_request:
types:
- opened
- synchronize
branches:
- dev
paths:
- "**/*.yml"
- "**/*.py"
push:
branches:
- feat/liquibase
paths:
- "**/*.yml"
- "**/*.py"
- "**/*.xml"
jobs:
deploy:
name: "Test and deploy bundle"
runs-on: ubuntu-latest
environment: test
env:
DATABRICKS_HOST: ${{ secrets.DATABRICKS_HOST }}
DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN_TST }}
DATABRICKS_CLIENT_ID: ${{ secrets.DATABRICKS_CLIENT_ID }}
DATABRICKS_CLIENT_SECRET: ${{ secrets.DATABRICKS_CLIENT_SECRET }}
DATABRICKS_BUNDLE_ENV: tst
defaults:
run:
working-directory: .
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: '3.12'
#----------------------------------------------
# Set up Java (Temurin JDK 8)
#----------------------------------------------
- name: Set up Java 8
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'temurin'
#----------------------------------------------
# Download Liquibase CLI and make executable
#----------------------------------------------
- name: Download Liquibase CLI
run: |
LIQUIBASE_VERSION=4.33.0
wget https://github.com/liquibase/liquibase/releases/download/v${LIQUIBASE_VERSION}/liquibase-${LIQUIBASE_VERSION}.tar.gz
mkdir liquibase
tar -xzf liquibase-${LIQUIBASE_VERSION}.tar.gz -C liquibase
#----------------------------------------------
# Download Databricks JDBC and extension JARs
#----------------------------------------------
- name: Download Databricks JDBC Driver and Liquibase Extension
run: |
# Download Databricks JDBC driver
wget https://databricks-bi-artifacts.s3.us-east-2.amazonaws.com/simbaspark-drivers/jdbc/2.7.3/DatabricksJDBC42-2.7.3.1010.zip
unzip DatabricksJDBC42-2.7.3.1010.zip
mv DatabricksJDBC-2.7.3.1010/DatabricksJDBC42.jar liquibase/lib
# Download Liquibase-Databricks extension
wget https://github.com/liquibase/liquibase-databricks/releases/download/v1.4.2/liquibase-databricks-1.4.2.jar
mv liquibase-databricks-1.4.2.jar liquibase/lib
#----------------------------------------------
# Run Liquibase connection test
#----------------------------------------------
- name: Run Liquibase connection test
env:
LIQUIBASE_COMMAND_URL: ${{ secrets.LIQUIBASE_COMMAND_URL }} # alternative: store only the workspace url and compose the Liquibase URL
LIQUIBASE_COMMAND_USERNAME: "token"
LIQUIBASE_COMMAND_PASSWORD: ${{ secrets.DATABRICKS_TOKEN_TST }}
run: |
liquibase/liquibase update --changelog-file=flights/flights-liquibase/liquibase/root.changelog.xml --log-level INFO --defaultsFile=flights/flights-liquibase/liquibase.properties
#----------------------------------------------
# Install dependencies and package
#----------------------------------------------
- run: python -m pip install --upgrade pip
- run: pip install -r flights/flights-liquibase/requirements.txt -r flights/flights-liquibase/dev-requirements.txt
- run: pip install -e flights/flights-liquibase/
#----------------------------------------------
# run test suite
#----------------------------------------------
- name: Run unit tests
env:
DATABRICKS_HOST: ${{ secrets.DATABRICKS_HOST }}
DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN_TST }}
DATABRICKS_CLUSTER_ID: ${{ secrets.DATABRICKS_CLUSTER_ID }}
run: |
pytest flights/flights-liquibase/tests/
- uses: databricks/setup-cli@main
# - run: cd flights/flights-liquibase; databricks bundle deploy --target test_automated
# env:
# DATABRICKS_HOST: ${{ secrets.DATABRICKS_HOST }}
# DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN_TST }}
# DATABRICKS_BUNDLE_ENV: tst