Skip to content

Commit 10730d2

Browse files
author
Thierry RAMORASOAVINA
committed
Support for Azure storage
- Among all the Azure storages, Khiops supports only (via its specific driver) "Files" and "Blobs" (Binary Large Objects) - The only supported authentication method is currently the `AZURE_STORAGE_CONNECTION_STRING` embedding the account name and account key
1 parent 17439c1 commit 10730d2

File tree

8 files changed

+528
-43
lines changed

8 files changed

+528
-43
lines changed

.github/workflows/dev-docker.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ env:
55
DEFAULT_IMAGE_INCREMENT: 0
66
DEFAULT_SERVER_REVISION: main
77
DEFAULT_PYTHON_VERSIONS: 3.10 3.11 3.12 3.13 3.14
8-
DEFAULT_KHIOPS_GCS_DRIVER_REVISION: 0.0.14
9-
DEFAULT_KHIOPS_S3_DRIVER_REVISION: 0.0.14
8+
DEFAULT_KHIOPS_GCS_DRIVER_REVISION: 0.0.16
9+
DEFAULT_KHIOPS_S3_DRIVER_REVISION: 0.0.15
10+
DEFAULT_KHIOPS_AZURE_DRIVER_REVISION: 0.0.6
1011
on:
1112
pull_request:
1213
paths: [packaging/docker/khiopspydev/Dockerfile.*, .github/workflows/dev-docker.yml]
@@ -38,12 +39,16 @@ on:
3839
description: Khiops Server Revision
3940
khiops-gcs-driver-revision:
4041
type: string
41-
default: 0.0.14
42+
default: 0.0.16
4243
description: Driver version for Google Cloud Storage remote files
4344
khiops-s3-driver-revision:
4445
type: string
45-
default: 0.0.14
46+
default: 0.0.15
4647
description: Driver version for AWS-S3 remote files
48+
khiops-azure-driver-revision:
49+
type: string
50+
default: 0.0.6
51+
description: Driver version for Azure remote files
4752
concurrency:
4853
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
4954
cancel-in-progress: true
@@ -67,6 +72,7 @@ jobs:
6772
echo "IMAGE_URL=ghcr.io/khiopsml/khiops-python/khiopspydev-${{ matrix.khiopsdev-os }}" >> "$GITHUB_ENV"
6873
echo "KHIOPS_GCS_DRIVER_REVISION=${{ inputs.khiops-gcs-driver-revision || env.DEFAULT_KHIOPS_GCS_DRIVER_REVISION }}" >> "$GITHUB_ENV"
6974
echo "KHIOPS_S3_DRIVER_REVISION=${{ inputs.khiops-s3-driver-revision || env.DEFAULT_KHIOPS_S3_DRIVER_REVISION }}" >> "$GITHUB_ENV"
75+
echo "KHIOPS_AZURE_DRIVER_REVISION=${{ inputs.khiops-azure-driver-revision || env.DEFAULT_KHIOPS_AZURE_DRIVER_REVISION }}" >> "$GITHUB_ENV"
7076
- name: Checkout khiops-python sources
7177
uses: actions/checkout@v4
7278
- name: Set up Docker Buildx
@@ -105,6 +111,7 @@ jobs:
105111
"PYTHON_VERSIONS=${{ inputs.python-versions || env.DEFAULT_PYTHON_VERSIONS }}"
106112
"KHIOPS_GCS_DRIVER_REVISION=${{ env.KHIOPS_GCS_DRIVER_REVISION }}"
107113
"KHIOPS_S3_DRIVER_REVISION=${{ env.KHIOPS_S3_DRIVER_REVISION }}"
114+
"KHIOPS_AZURE_DRIVER_REVISION=${{ env.KHIOPS_AZURE_DRIVER_REVISION }}"
108115
tags: ${{ env.DOCKER_IMAGE_TAGS }}
109116
# Push only on manual request
110117
push: ${{ inputs.push || false }}

.github/workflows/tests.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,21 +138,32 @@ jobs:
138138
echo "Generated AWS configuration..."
139139
cat ${GITHUB_WORKSPACE}/.aws/configuration
140140
/scripts/run_fake_remote_file_servers.sh . # launch the servers in the background
141+
141142
# Set environment variables for the tests with GCS
142143
GCS_BUCKET_NAME=data-test-khiops-driver-gcs/khiops_data
143144
GCS_DRIVER_LOGLEVEL=info # set to debug for diagnosis
145+
144146
# Set environment variables for the tests with S3
145147
S3_DRIVER_LOGLEVEL=info # set to debug for diagnosis
146148
S3_BUCKET_NAME=s3-bucket
147149
AWS_SHARED_CREDENTIALS_FILE=${{ github.workspace }}/.aws/credentials
148150
AWS_CONFIG_FILE=${{ github.workspace }}/.aws/configuration
151+
152+
# Set environment variables for the tests with Azure
153+
AZURE_STORAGE_CONNECTION_STRING='${{ secrets.AZURE_CONNECTION_STRING }}'
154+
CLOUD_BLOB_URI_PREFIX=${{ vars.CLOUD_BLOB_URI_PREFIX }}
155+
CLOUD_FILE_URI_PREFIX=${{ vars.CLOUD_FILE_URI_PREFIX }}
156+
149157
# Persist environment variables for subsequent steps
150158
echo "GCS_BUCKET_NAME=${GCS_BUCKET_NAME}" >> "$GITHUB_ENV"
151159
echo "GCS_DRIVER_LOGLEVEL=${GCS_DRIVER_LOGLEVEL}" >> "$GITHUB_ENV"
152160
echo "S3_DRIVER_LOGLEVEL=${S3_DRIVER_LOGLEVEL}" >> "$GITHUB_ENV"
153161
echo "S3_BUCKET_NAME=${S3_BUCKET_NAME}" >> "$GITHUB_ENV"
154162
echo "AWS_SHARED_CREDENTIALS_FILE=${AWS_SHARED_CREDENTIALS_FILE}" >> "$GITHUB_ENV"
155163
echo "AWS_CONFIG_FILE=${AWS_CONFIG_FILE}" >> "$GITHUB_ENV"
164+
echo "AZURE_STORAGE_CONNECTION_STRING=${AZURE_STORAGE_CONNECTION_STRING}" >> "$GITHUB_ENV"
165+
echo "CLOUD_BLOB_URI_PREFIX=${CLOUD_BLOB_URI_PREFIX}" >> "$GITHUB_ENV"
166+
echo "CLOUD_FILE_URI_PREFIX=${CLOUD_FILE_URI_PREFIX}" >> "$GITHUB_ENV"
156167
- name: Authenticate to GCP using "Workload Identity Federation"
157168
if: env.SKIP_EXPENSIVE_TESTS != 'true'
158169
# For integration tests on GCS we use a real Google account

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
### Added
1212
- (`sklearn`) `keep_selected_variables_only` parameter to the predictors (`KhiopsClassifier` and `KhiopsRegressor`)
13+
- (General) Support for Azure storage
1314

1415
### Changed
1516
- (`core`) Rename `variable_part_dimensions` to `inner_variable_dimensions` in Coclustering results.

0 commit comments

Comments
 (0)