-
Notifications
You must be signed in to change notification settings - Fork 208
PHPLIB-1098: Update evergreen build hosts #1442
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Test PHP versions on the following systems: - Debian 11, 10 - RHEL 9.0, 8.0, 7.6 - Ubuntu 22.04, 20.04 (x64 and arm64) - RHEL 7.2 zSeries - RHEL 7.1 power8 Note that RHEL 9 and Ubuntu 22.04 only test PHP 8.1 and newer due to OpenSSL 3
- ubuntu2204-arm64 | ||
- ubuntu2204 | ||
- ubuntu2004-arm64 | ||
- ubuntu2004 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it redundant to test PHP 8.1+ on both ubuntu2204 and ubuntu2004 (x64 and arm64)?
To make more efficient use of Evergreen, perhaps we can split this around the version boundary, similar to what we do with debian92 and debian11 in the test-mongodb-versions
matrix.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this involves different versions of OpenSSL I found it prudent to test the full range. Also, only testing the old versions would have us continuously update the list of excluded PHP versions on Ubuntu 20.04 as new versions are added. I'm not that concerned about the load on Evergreen on checks running on our branches, but I think it would make sense to limit the tasks we run when testing pull request. I don't think we need to test the full complement of PHP versions on all operating systems for that.
Potentially, we can re-address this when we refactor our build matrices in PHPC-2201.
.evergreen/config.yml
Outdated
display_name: "Ubuntu 22.04 x64" | ||
run_on: ubuntu2204-small | ||
variables: | ||
SKIP_LEGACY_SHELL: "true" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is SKIP_LEGACY_SHELL
here in any way related to mongodb/mongo-php-library#1035 and PHPLIB-1028?
I only found SKIP_LEGACY_SHELL
referenced in download-mongodb.sh
. In that script, it is only used in a test for -z "${SKIP_LEGACY_SHELL:-}"
(i.e. branch happens when the variable is zero-length or undefined). So in that case, defining this string as anything is considered a "true" value to avoid the conditional download of the legacy shell. That seems a bit odd to me, but I suppose it's just because we tend to do explicit checks for "yes" values in our own scripts.
Why do we only do this for the Ubuntu 22.04 platforms? If the legacy shell isn't necessary at all, perhaps we should be setting SKIP_LEGACY_SHELL
for all environments.
I see download-mongodb.sh
is only called in our config for the getdata
task (only executed manually for debugging). I suppose the only other place it is called is via the bootstrap mongo-orchestration
task through run-orchestration.sh
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is
SKIP_LEGACY_SHELL
here in any way related to mongodb/mongo-php-library#1035 and PHPLIB-1028?
That is correct. The corresponding DRIVERS ticket was blocked on an issue with the AWS tests, which I think is resolved that. I'll follow up on that separately.
I only found
SKIP_LEGACY_SHELL
referenced indownload-mongodb.sh
. In that script, it is only used in a test for-z "${SKIP_LEGACY_SHELL:-}"
(i.e. branch happens when the variable is zero-length or undefined). So in that case, defining this string as anything is considered a "true" value to avoid the conditional download of the legacy shell. That seems a bit odd to me, but I suppose it's just because we tend to do explicit checks for "yes" values in our own scripts.
I believe I modelled this after SKIP_CRYPT_SHARED
, which uses the same system. Similarly, SERVERLESS_SKIP_CRYPT
also requires any value different from OFF
to be defined. This could be changed, but more on that below.
Why do we only do this for the Ubuntu 22.04 platforms? If the legacy shell isn't necessary at all, perhaps we should be setting
SKIP_LEGACY_SHELL
for all environments.
For the time being, I've only disabled this for platforms that don't have a legacy shell. However, after double-checking, neither drivers-evergreen-tools nor our own evergreen scripts make use of the legacy shell, so I've changed this to skip installing the legacy shell on all platforms.
I see
download-mongodb.sh
is only called in our config for thegetdata
task (only executed manually for debugging). I suppose the only other place it is called is via thebootstrap mongo-orchestration
task throughrun-orchestration.sh
.
That is correct - run-orchestration.sh
downloads the requested MongoDB version through download-mongodb.sh
and then starts the requested topology.
PHPLIB-1098
This PR changes the evergreen configuration to only build on supported hosts.
This includes:
RHEL 7.1 and 7.2 are kept to keep testing on the Z and Power architectures. Once the toolchain is available, RHEL 8.0 will take their place.