Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
17f44ac
Add documentation build folder to .gitignore
ahsimb Mar 26, 2024
7875564
Merge remote-tracking branch 'origin/main'
ahsimb May 14, 2024
31cca39
Merge remote-tracking branch 'origin/main'
ahsimb May 16, 2024
a78e714
Merge remote-tracking branch 'origin/main'
ahsimb May 23, 2024
381181f
Merge remote-tracking branch 'origin/main'
ahsimb May 28, 2024
062aee7
Merge remote-tracking branch 'origin/main'
ahsimb Jun 7, 2024
1cb349f
Merge remote-tracking branch 'origin/main'
ahsimb Jun 11, 2024
ee5bd0e
Merge remote-tracking branch 'origin/main'
ahsimb Jun 12, 2024
8c40fad
Merge remote-tracking branch 'origin/main'
ahsimb Jun 12, 2024
4584c96
Merge remote-tracking branch 'origin/main'
ahsimb Jun 13, 2024
8e2bc62
Merge remote-tracking branch 'origin/main'
ahsimb Jun 25, 2024
0ca19e9
Merge remote-tracking branch 'origin/main'
ahsimb Jun 25, 2024
2e86c75
Merge remote-tracking branch 'origin/main'
ahsimb Jun 26, 2024
6746ead
Merge remote-tracking branch 'origin/main'
ahsimb Jun 26, 2024
a6e9e66
Merge remote-tracking branch 'origin/main'
ahsimb Aug 8, 2024
ccba19f
Merge remote-tracking branch 'origin/main'
ahsimb Aug 12, 2024
fb4107d
Merge remote-tracking branch 'origin/main'
ahsimb Aug 14, 2024
8f0bc20
Merge remote-tracking branch 'origin/main'
ahsimb Aug 14, 2024
5c7c13d
Merge remote-tracking branch 'origin/main'
ahsimb Sep 18, 2024
14bab30
Merge remote-tracking branch 'origin/main'
ahsimb Sep 19, 2024
d41ce67
Merge remote-tracking branch 'origin/main'
ahsimb Sep 20, 2024
75dd021
Merge remote-tracking branch 'origin/main'
ahsimb Sep 24, 2024
813f223
Merge remote-tracking branch 'origin/main'
ahsimb Oct 2, 2024
5f2791b
Merge remote-tracking branch 'origin/main'
ahsimb Oct 2, 2024
fb33e33
Merge remote-tracking branch 'origin/main'
ahsimb Oct 2, 2024
4ce824f
Merge remote-tracking branch 'origin/main'
ahsimb Oct 4, 2024
797cbfe
Merge remote-tracking branch 'origin/main'
ahsimb Oct 7, 2024
ee3cc30
Merge remote-tracking branch 'origin/main'
ahsimb Oct 7, 2024
e3e4e93
Merge remote-tracking branch 'origin/main'
ahsimb Oct 14, 2024
898f06c
Merge remote-tracking branch 'origin/main'
ahsimb Oct 14, 2024
c76ef87
Merge remote-tracking branch 'origin/main'
ahsimb Oct 14, 2024
6de88a0
Merge remote-tracking branch 'origin/main'
ahsimb Oct 25, 2024
bcf2f78
Merge remote-tracking branch 'origin/main'
ahsimb Feb 12, 2025
2f5c203
Merge remote-tracking branch 'origin/main'
ahsimb Oct 30, 2025
1a24257
Merge remote-tracking branch 'origin/main'
ahsimb Jun 16, 2026
8d6ef94
#154: Changed slow workflows
ahsimb Jun 17, 2026
25159f4
#154: Restored matrix-all.yml
ahsimb Jun 17, 2026
b20d1f1
#154: Changed test file names
ahsimb Jun 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/workflows/matrix-all.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Build Matrix (All)

on:
workflow_call:
outputs:
matrix:
description: "Generates the full build matrix for Python & Exasol versions"
value: ${{ jobs.set-matrix-all.outputs.matrix }}

jobs:
set-matrix-all:
runs-on: "ubuntu-24.04"
permissions:
contents: read
steps:
- name: Check out Repository
id: check-out-repository
uses: actions/checkout@v6

- name: Set up Python & Poetry Environment
id: set-up-python-and-poetry-environment
uses: exasol/python-toolbox/.github/actions/python-environment@v8
with:
python-version: "3.10"
poetry-version: "2.3.0"

- name: Generate Matrix
id: generate-matrix
run: poetry run -- nox -s matrix:all

- name: Set Matrix
id: set-matrix
run: |
echo "matrix=$(poetry run -- nox -s matrix:all)" >> $GITHUB_OUTPUT

outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
68 changes: 68 additions & 0 deletions .github/workflows/slow-checks-itde.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Slow-Checks-ITDE

on:
workflow_call:

jobs:
build-matrix:
name: Build Matrix
uses: ./.github/workflows/matrix-all.yml
permissions:
contents: read

run-integration-tests:
name: Run Integration Tests (Python-${{ matrix.python-version }}, Exasol-${{ matrix.exasol-version}})
needs:
- build-matrix
runs-on: "ubuntu-24.04"
permissions:
contents: read
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }}

steps:
- name: Allow unprivileged user namespaces
id: allow-unprivileged-user-namespaces
run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

- name: Free disk space
uses: jlumbroso/free-disk-space@main
with:
tool-cache: true
large-packages: false

- name: Free disk space by removing large directories
run: |
sudo rm -rf /usr/local/graalvm/
sudo rm -rf /usr/local/.ghcup/
sudo rm -rf /usr/local/share/powershell
sudo rm -rf /usr/local/share/chromium
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /opt/ghc

- name: Check out Repository
id: check-out-repository
uses: actions/checkout@v6

- name: Set up Python & Poetry Environment
id: set-up-python-and-poetry-environment
uses: exasol/python-toolbox/.github/actions/python-environment@v8
with:
python-version: ${{ matrix.python-version }}
poetry-version: "2.3.0"

- name: Run Integration Tests
id: run-integration-tests
run: >
poetry run -- nox -s test:integration -- -s --coverage
--backend=onprem
--db-version ${{ matrix.exasol-version }}

- name: Upload Artifacts
id: upload-artifacts
uses: actions/upload-artifact@v7
with:
name: coverage-python${{ matrix.python-version }}-exasol${{ matrix.exasol-version }}-slow-itde
path: .coverage
include-hidden-files: true
45 changes: 45 additions & 0 deletions .github/workflows/slow-checks-saas.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Slow-Checks-SaaS

on:
workflow_call:

jobs:
run-integration-tests:
name: Run Integration Tests with SaaS (Python-3.12)
runs-on: "ubuntu-24.04"
permissions:
contents: read

steps:
- name: Allow unprivileged user namespaces
id: allow-unprivileged-user-namespaces
run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

- name: Check out Repository
id: check-out-repository
uses: actions/checkout@v6

- name: Set up Python & Poetry Environment
id: set-up-python-and-poetry-environment
uses: exasol/python-toolbox/.github/actions/python-environment@v8
with:
python-version: "3.12"
poetry-version: "2.3.0"

- name: Run Integration Tests
id: run-integration-tests
run: >
poetry run -- nox -s test:integration -- -s --coverage
--backend=saas
env:
SAAS_HOST: ${{ secrets.INTEGRATION_TEAM_SAAS_STAGING_HOST }}
SAAS_ACCOUNT_ID: ${{ secrets.INTEGRATION_TEAM_SAAS_STAGING_ACCOUNT_ID }}
SAAS_PAT: ${{ secrets.INTEGRATION_TEAM_SAAS_STAGING_PAT }}

- name: Upload Artifacts
id: upload-artifacts
uses: actions/upload-artifact@v7
with:
name: coverage-python3.12-slow-saas
path: .coverage
include-hidden-files: true
81 changes: 10 additions & 71 deletions .github/workflows/slow-checks.yml
Original file line number Diff line number Diff line change
@@ -1,80 +1,19 @@
# Please note that this workflow was manually adapted from the version generated
# by the Exasol Python Toolbox.
#
# 1. The matrix consists of backend type and Exasol version
# 2. Disabling AppArmor namespace restrictions is required to run dockerdb
# 3. To make sure space on the standard runner is freed up,
# unneeded large directories are removed
#
# Once the workflow patcher can do this modification without having to replace
# each workflow step individually, this workflow should be generated.

name: Slow-Checks

on:
workflow_call:

jobs:

run-integration-tests:
name: Integration Tests (${{ matrix.backend }}, ${{ matrix.exasol-version}})
runs-on: "ubuntu-24.04"
run-slow-checks-itde:
name: Run Slow Checks with ITDE
uses: ./.github/workflows/slow-checks-itde.yml
secrets: inherit
permissions:
contents: read
strategy:
fail-fast: false
matrix:
include:
- backend: saas
exasol-version: provided
- backend: onprem
exasol-version: "2025.1.8"

steps:
- name: Allow unprivileged user namespaces
run: sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

- name: Free disk space
uses: jlumbroso/free-disk-space@main
with:
tool-cache: true
large-packages: false

- name: Free disk space by removing large directories
run: |
sudo rm -rf /usr/local/graalvm/
sudo rm -rf /usr/local/.ghcup/
sudo rm -rf /usr/local/share/powershell
sudo rm -rf /usr/local/share/chromium
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /opt/ghc

- name: Check out Repository
id: check-out-repository
uses: actions/checkout@v6

- name: Set up Python & Poetry Environment
id: set-up-python-and-poetry-environment
uses: exasol/python-toolbox/.github/actions/python-environment@v7
with:
python-version: "3.10"
poetry-version: "2.3.0"

- name: Run Integration Tests
id: run-integration-tests
run: >
poetry run -- nox -s test:integration -- --coverage
--backend ${{ matrix.backend }}
--db-version ${{ matrix.exasol-version }}
env:
SAAS_HOST: ${{ secrets.INTEGRATION_TEAM_SAAS_STAGING_HOST }}
SAAS_ACCOUNT_ID: ${{ secrets.INTEGRATION_TEAM_SAAS_STAGING_ACCOUNT_ID }}
SAAS_PAT: ${{ secrets.INTEGRATION_TEAM_SAAS_STAGING_PAT }}

- name: Upload Artifacts
id: upload-artifacts
uses: actions/upload-artifact@v7
with:
name: coverage-python3.10-${{ matrix.backend }}-${{ matrix.exasol-version }}
path: .coverage
include-hidden-files: true
run-slow-checks-saas:
name: Run Slow Checks with SaaS
uses: ./.github/workflows/slow-checks-saas.yml
secrets: inherit
permissions:
contents: read
12 changes: 6 additions & 6 deletions test/integration/connections/test_bucketfs_location.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def test_create_bucketfs_location_onprem(use_onprem, onprem_bfs_params):
if not use_onprem:
pytest.skip("The test is not configured to use ITDE.")

extra_params = {StdParams.path_in_bucket.name: "test_create_location"}
extra_params = {StdParams.path_in_bucket.name: "test_create_location.csv"}
bfs_path = create_bucketfs_location(**onprem_bfs_params, **extra_params)
with write_test_file(bfs_path):
validate_test_file(bfs_path)
Expand All @@ -64,7 +64,7 @@ def test_create_bucketfs_location_saas_db_id(use_saas, saas_params_id):
if not use_saas:
pytest.skip("The test is not configured to use SaaS.")

extra_params = {StdParams.path_in_bucket.name: "test_create_location_with_id"}
extra_params = {StdParams.path_in_bucket.name: "test_create_location_with_id.csv"}
bfs_path = create_bucketfs_location(**saas_params_id, **extra_params)
with write_test_file(bfs_path):
validate_test_file(bfs_path)
Expand All @@ -74,7 +74,7 @@ def test_create_bucketfs_location_saas_db_name(use_saas, saas_params_name):
if not use_saas:
pytest.skip("The test is not configured to use SaaS.")

extra_params = {StdParams.path_in_bucket.name: "test_create_location_with_name"}
extra_params = {StdParams.path_in_bucket.name: "test_create_location_with_name.csv"}
bfs_path = create_bucketfs_location(**saas_params_name, **extra_params)
with write_test_file(bfs_path):
validate_test_file(bfs_path)
Expand All @@ -93,7 +93,7 @@ def test_create_bucketfs_conn_object_onprem(
pytest.skip("The test is not configured to use ITDE.")

write_conn_object_mock.side_effect = validate_conn_object
extra_params = {StdParams.path_in_bucket.name: "test_create_conn_object"}
extra_params = {StdParams.path_in_bucket.name: "test_create_conn_object.csv"}
bfs_path = create_bucketfs_location(**onprem_bfs_params, **extra_params)
with write_test_file(bfs_path):
# onprem_db_params and onprem_bfs_params have one item in common -
Expand All @@ -109,7 +109,7 @@ def test_create_bucketfs_conn_object_saas_db_id(write_conn_object_mock, use_saas
pytest.skip("The test is not configured to use SaaS.")

write_conn_object_mock.side_effect = validate_conn_object
extra_params = {StdParams.path_in_bucket.name: "test_create_conn_object_with_id"}
extra_params = {StdParams.path_in_bucket.name: "test_create_conn_object_with_id.csv"}
bfs_path = create_bucketfs_location(**saas_params_id, **extra_params)
with write_test_file(bfs_path):
create_bucketfs_conn_object(conn_name="SAAS_TEST_BFS_ID", **saas_params_id, **extra_params)
Expand All @@ -123,7 +123,7 @@ def test_create_bucketfs_conn_object_saas_db_name(
pytest.skip("The test is not configured to use SaaS.")

write_conn_object_mock.side_effect = validate_conn_object
extra_params = {StdParams.path_in_bucket.name: "test_create_conn_object_with_name"}
extra_params = {StdParams.path_in_bucket.name: "test_create_conn_object_with_name.csv"}
bfs_path = create_bucketfs_location(**saas_params_name, **extra_params)
with write_test_file(bfs_path):
create_bucketfs_conn_object(
Expand Down