Skip to content

liquibase generated from template test #35

liquibase generated from template test

liquibase generated from template test #35

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:
- *liquibase*

Check failure on line 21 in .github/workflows/flights_liquibase.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/flights_liquibase.yml

Invalid workflow file

You have an error in your yaml syntax on line 21
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_BUNDLE_ENV: dev # should be TST, 'dev' is set for demo purposes only
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_download
tar -xzf liquibase-${LIQUIBASE_VERSION}.tar.gz -C liquibase_download
#----------------------------------------------
# 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_download/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_download/lib
#----------------------------------------------
# Run Liquibase connection test
#----------------------------------------------
- name: Run Liquibase connection test
env:
LIQUIBASE_COMMAND_URL: ${{ secrets.DATABRICKS_JDBC_URL }}
LIQUIBASE_COMMAND_USERNAME: "token"
LIQUIBASE_COMMAND_PASSWORD: ${{ secrets.DATABRICKS_TOKEN_TST }}
run: |
liquibase_download/liquibase update --changelog-file=./liquibase/root.changelog.xml --log-level INFO --defaultsFile=./liquibase.properties
#----------------------------------------------
# Install dependencies and package
#----------------------------------------------
- run: python -m pip install --upgrade pip
- run: pip install -r ./requirements.txt -r ./dev-requirements.txt
- run: pip install -e .
#----------------------------------------------
# run test suite
#----------------------------------------------
- name: Run unit tests
env:
DATABRICKS_HOST: ${{ secrets.DATABRICKS_HOST }}
DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN_TST }}
DATABRICKS_SERVERLESS_COMPUTE_ID: "auto"
run: |
pytest ./tests/
- uses: databricks/setup-cli@main
#----------------------------------------------
# run job (in staging)
#----------------------------------------------
- name: Run job (in staging)
env:
DATABRICKS_HOST: ${{ secrets.DATABRICKS_HOST }}
DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN_TST }}
DATABRICKS_BUNDLE_ENV: dev # should be TST, 'dev' is set for demo purposes only
run: |
databricks bundle deploy; databricks bundle run flights_notebook