minor change #15
This file contains hidden or 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: 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.10 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.10' | |
| #---------------------------------------------- | |
| # 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 | |
| #---------------------------------------------- | |
| # 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_CLIENT_ID: ${{ secrets.DATABRICKS_CLIENT_ID }} | |
| DATABRICKS_CLIENT_SECRET: ${{ secrets.DATABRICKS_CLIENT_SECRET }} | |
| DBCONNECT_SERVERLESS: "true" | |
| 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 |