Skip to content

Merge pull request #199 from oracle/dev/v1.11.1 #11

Merge pull request #199 from oracle/dev/v1.11.1

Merge pull request #199 from oracle/dev/v1.11.1 #11

Workflow file for this run

name: dbt-tests-adapter
on:
push:
workflow_call:
permissions:
contents: read
jobs:
dbt_oracle_adapter_tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ ubuntu-latest ]
python-version: ['3.10', '3.11', '3.12', '3.13']
services:
oracle_db:
image: container-registry.oracle.com/database/free:latest-lite
env:
ORACLE_PWD: ${{ secrets.DBT_ORACLE_PASSWORD }}
options: --name oracle_db
ports:
- 1521:1521
steps:
- name: Check out dbt-oracle repository code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: ${{ matrix.python-version }}
- name: Install Oracle Instantclient
run: |
chmod +x ${{ github.workspace }}/.github/scripts/install_oracle_instantclient.sh
${{ github.workspace }}/.github/scripts/install_oracle_instantclient.sh
- name: Copy Create User script
run: |
chmod +x ${{ github.workspace }}/.github/scripts/create_new_user.sh
docker cp ${{ github.workspace }}/.github/scripts/create_new_user.sh oracle_db:/home/oracle/create_new_user.sh
- name: Create dbt test users
run: |
docker exec oracle_db /home/oracle/create_new_user.sh dbt_test ${{ secrets.DBT_ORACLE_PASSWORD }}
docker exec oracle_db /home/oracle/create_new_user.sh dbt_test_user_1 ${{ secrets.DBT_ORACLE_PASSWORD }}
docker exec oracle_db /home/oracle/create_new_user.sh dbt_test_user_2 ${{ secrets.DBT_ORACLE_PASSWORD }}
docker exec oracle_db /home/oracle/create_new_user.sh dbt_test_user_3 ${{ secrets.DBT_ORACLE_PASSWORD }}
- name: Install dbt-oracle with core dependencies
run: |
python -m pip install --upgrade pip
pip install -e '.[test]'
- name: Check create-pem-from-p12 script is installed in bin
run: |
create-pem-from-p12 --help
- name: Run adapter tests - ORA_PYTHON_DRIVER_TYPE => THICK
run: |
pytest -v
env:
ORA_PYTHON_DRIVER_TYPE: THICK
DBT_ORACLE_USER: DBT_TEST
DBT_ORACLE_HOST: localhost
DBT_ORACLE_PORT: 1521
DBT_ORACLE_SCHEMA: DBT_TEST
DBT_ORACLE_PASSWORD: ${{ secrets.DBT_ORACLE_PASSWORD }}
DBT_ORACLE_DATABASE: FREEPDB1
DBT_ORACLE_SERVICE: FREEPDB1
DBT_ORACLE_PROTOCOL: tcp
LD_LIBRARY_PATH: /opt/oracle/instantclient_23_7
TNS_ADMIN: /opt/tns_admin
DBT_TEST_USER_1: DBT_TEST_USER_1
DBT_TEST_USER_2: DBT_TEST_USER_2
DBT_TEST_USER_3: DBT_TEST_USER_3
- name: Run adapter tests - ORA_PYTHON_DRIVER_TYPE => THIN
run: |
pytest -v
env:
ORA_PYTHON_DRIVER_TYPE: THIN
DBT_ORACLE_USER: DBT_TEST
DBT_ORACLE_HOST: localhost
DBT_ORACLE_PORT: 1521
DBT_ORACLE_SCHEMA: DBT_TEST
DBT_ORACLE_PASSWORD: ${{ secrets.DBT_ORACLE_PASSWORD }}
DBT_ORACLE_DATABASE: FREEPDB1
DBT_ORACLE_SERVICE: FREEPDB1
DBT_ORACLE_PROTOCOL: tcp
DISABLE_OOB: on
TNS_ADMIN: /opt/tns_admin
DBT_TEST_USER_1: DBT_TEST_USER_1
DBT_TEST_USER_2: DBT_TEST_USER_2
DBT_TEST_USER_3: DBT_TEST_USER_3