Skip to content

Commit a9ab2fc

Browse files
authored
PHPLIB-607 Support Azure and GCP keystores in FLE (#809)
* Require ext-mongodb 1.10 * Install dev version of ext-mongodb * Sync spec tests * Copy spec test changes from libmongoc * Add support for GCP and Azure KMS providers * Refactor double encryption test * Refactor custom endpoint test * Test spec tests against GCP/Azure * Expose secrets as env variables * Expose CSFLE secrets in evergreen * Slim down build pipeline * Address code review feedback * Fix coding standards violation * Skip Azure FLE test due to missing certificates * Revise driver-versions axis * Add more detailed comment about re-enabling driver versions * Rename latest-stable to latest to account for varying stability * Prepare correct versions for 1.10-dev and 1.11-dev
1 parent f915f4b commit a9ab2fc

21 files changed

+12569
-1160
lines changed

.evergreen/config.yml

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,13 @@ functions:
207207
working_dir: "src"
208208
script: |
209209
${PREPARE_SHELL}
210+
export AWS_ACCESS_KEY_ID="${client_side_encryption_aws_access_key_id}"
211+
export AWS_SECRET_ACCESS_KEY="${client_side_encryption_aws_secret_access_key}"
212+
export AZURE_TENANT_ID="${client_side_encryption_azure_tenant_id}"
213+
export AZURE_CLIENT_ID="${client_side_encryption_azure_client_id}"
214+
export AZURE_CLIENT_SECRET="${client_side_encryption_azure_client_secret}"
215+
export GCP_EMAIL="${client_side_encryption_gcp_email}"
216+
export GCP_PRIVATEKEY="${client_side_encryption_gcp_privatekey}"
210217
PHP_VERSION=${PHP_VERSION} AUTH=${AUTH} SSL=${SSL} MONGODB_URI="${MONGODB_URI}" sh ${PROJECT_DIRECTORY}/.evergreen/run-tests.sh
211218
212219
"run atlas data lake test":
@@ -436,22 +443,27 @@ axes:
436443
- id: driver-versions
437444
display_name: Driver Version
438445
values:
439-
- id: "lowest-supported"
440-
display_name: "1.9.0"
441-
variables:
442-
DRIVER_VERSION: "1.9.0"
443-
- id: "latest-stable"
444-
display_name: "1.9-stable"
445-
variables:
446-
DRIVER_VERSION: "stable"
447-
- id: "1.9-dev"
448-
display_name: "1.9-dev"
449-
variables:
450-
DRIVER_BRANCH: "v1.9"
451-
- id: "latest-dev"
446+
# TODO: this axis can be cleaned up as we move towards a 1.10 release:
447+
# * lowest-supported can be enabled once a 1.10 patch release has been tagged
448+
# * latest-stable can be updated when we start tagging 1.10 releases (even beta)
449+
# * 1.10-dev can be enabled once 1.10 has been branched
450+
# * latest-dev can be enabled once 1.10 has been branched
451+
# - id: "lowest-supported"
452+
# display_name: "1.10-dev (master)"
453+
# variables:
454+
# DRIVER_BRANCH: "master"
455+
- id: "latest"
452456
display_name: "1.10-dev (master)"
453457
variables:
454458
DRIVER_BRANCH: "master"
459+
# - id: "1.10-dev"
460+
# display_name: "1.10-dev"
461+
# variables:
462+
# DRIVER_BRANCH: "v1.10"
463+
# - id: "latest-dev"
464+
# display_name: "1.11-dev (master)"
465+
# variables:
466+
# DRIVER_BRANCH: "master"
455467

456468
- id: os-php7
457469
display_name: OS
@@ -541,7 +553,7 @@ buildvariants:
541553
# Tests all PHP versions on all operating systems.
542554
# Only tests against latest MongoDB and ext-mongodb versions
543555
- matrix_name: "test-php-versions"
544-
matrix_spec: {"os-php7": "*", "php-versions": "*", "edge-versions": "latest-stable", "driver-versions": "latest-stable" }
556+
matrix_spec: {"os-php7": "*", "php-versions": "*", "edge-versions": "latest-stable", "driver-versions": "latest" }
545557
exclude_spec:
546558
# rhel71-power8 fails due to not reaching pecl
547559
- { "os-php7": "rhel71-power8", "php-versions": "*", edge-versions: "*", "driver-versions": "*" }
@@ -567,7 +579,7 @@ buildvariants:
567579
# Only tests on Ubuntu 18.04, with latest stable PHP and driver versions
568580
# Tests against various topologies
569581
- matrix_name: "test-mongodb-versions"
570-
matrix_spec: {"os-php7": "rhel70-test", "php-edge-versions": "latest-stable", "versions": "*", "driver-versions": "latest-stable" }
582+
matrix_spec: {"os-php7": "rhel70-test", "php-edge-versions": "latest-stable", "versions": "*", "driver-versions": "latest" }
571583
display_name: "MongoDB ${versions}, PHP ${php-edge-versions}, ${os-php7}, ext-mongodb ${driver-versions}"
572584
tasks:
573585
- name: "test-standalone"
@@ -576,8 +588,9 @@ buildvariants:
576588

577589
# Tests oldest supported version
578590
# Enables --prefer-lowest for composer to test oldest dependencies against all server versions
591+
# TODO: driver-versions can be changed back to lowest-supported when that version is enabled in the axis
579592
- matrix_name: "test-dependencies"
580-
matrix_spec: { "dependencies": "lowest", "os-php7": "rhel70-test", "php-edge-versions": "oldest-supported", "versions": "*", "driver-versions": "lowest-supported" }
593+
matrix_spec: { "dependencies": "lowest", "os-php7": "rhel70-test", "php-edge-versions": "oldest-supported", "versions": "*", "driver-versions": "latest" }
581594
display_name: "Dependencies: ${dependencies}, MongoDB ${versions}, PHP ${php-edge-versions}, ${os-php7}, ext-mongodb ${driver-versions}"
582595
tasks:
583596
- name: "test-standalone"

.github/workflows/coding-standards.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ jobs:
1919
matrix:
2020
php-version:
2121
- "7.4"
22+
driver-version:
23+
- "mongodb/mongo-php-driver@master"
2224

2325
steps:
2426
- name: "Checkout"
@@ -29,7 +31,7 @@ jobs:
2931
uses: shivammathur/cache-extensions@v1
3032
with:
3133
php-version: ${{ matrix.php-version }}
32-
extensions: "mongodb"
34+
extensions: "mongodb-${{ matrix.driver-version }}"
3335
key: "extcache-v1"
3436

3537
- name: Cache extensions
@@ -40,10 +42,11 @@ jobs:
4042
restore-keys: ${{ steps.extcache.outputs.key }}
4143

4244
- name: "Install PHP"
43-
uses: "shivammathur/setup-php@v2"
45+
# Todo: switch to @v2 once a tag has been created
46+
uses: "shivammathur/setup-php@develop"
4447
with:
4548
coverage: "none"
46-
extensions: "mongodb"
49+
extensions: "mongodb-${{ matrix.driver-version }}"
4750
php-version: "${{ matrix.php-version }}"
4851
tools: "cs2pr"
4952

.github/workflows/tests.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,19 @@ jobs:
2626
mongodb-version:
2727
- "4.4"
2828
driver-version:
29-
- "stable"
29+
- "mongodb/mongo-php-driver@master"
3030
topology:
3131
- "server"
3232
include:
3333
- os: "ubuntu-20.04"
3434
php-version: "8.0"
3535
mongodb-version: "4.4"
36-
driver-version: "stable"
36+
driver-version: "mongodb/mongo-php-driver@master"
3737
topology: "replica_set"
3838
- os: "ubuntu-20.04"
3939
php-version: "8.0"
4040
mongodb-version: "4.4"
41-
driver-version: "stable"
41+
driver-version: "mongodb/mongo-php-driver@master"
4242
topology: "sharded_cluster"
4343

4444
steps:
@@ -69,7 +69,8 @@ jobs:
6969
restore-keys: ${{ steps.extcache.outputs.key }}
7070

7171
- name: "Install PHP"
72-
uses: "shivammathur/setup-php@v2"
72+
# Todo: switch to @v2 once a tag has been created
73+
uses: "shivammathur/setup-php@develop"
7374
with:
7475
php-version: "${{ matrix.php-version }}"
7576
tools: "pecl"
@@ -95,3 +96,10 @@ jobs:
9596
env:
9697
SYMFONY_DEPRECATIONS_HELPER: 999999
9798
MONGODB_URI: ${{ steps.setup-mongodb.outputs.cluster-uri }}
99+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
100+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
101+
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
102+
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
103+
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
104+
GCP_EMAIL: ${{ secrets.GCP_EMAIL }}
105+
GCP_PRIVATE_KEY: ${{ secrets.GCP_PRIVATE_KEY }}

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"php": "^7.0 || ^8.0",
1313
"ext-hash": "*",
1414
"ext-json": "*",
15-
"ext-mongodb": "^1.9.0",
15+
"ext-mongodb": "^1.10.0",
1616
"jean85/pretty-package-versions": "^1.2 || ^2.0.1",
1717
"symfony/polyfill-php80": "^1.19"
1818
},

0 commit comments

Comments
 (0)