Skip to content

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

Merged
merged 3 commits into from
Jun 28, 2023

Conversation

alcaeus
Copy link
Member

@alcaeus alcaeus commented Jun 27, 2023

PHPLIB-1098

This PR changes the evergreen configuration to only build on supported hosts.
This includes:

  • Drop testing on Ubuntu 18.04
  • Drop testing on RHEL 7.0
  • Add Ubuntu 22.04 and 20.04
  • Add RHEL 9.0 and 7.6

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.

alcaeus added 2 commits June 26, 2023 10:26
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
@alcaeus alcaeus requested a review from jmikola June 27, 2023 09:44
@alcaeus alcaeus changed the title PHPC-1098: Update evergreen build hosts PHPLIB-1098: Update evergreen build hosts Jun 27, 2023
- ubuntu2204-arm64
- ubuntu2204
- ubuntu2004-arm64
- ubuntu2004
Copy link
Member

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.

Copy link
Member Author

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.

display_name: "Ubuntu 22.04 x64"
run_on: ubuntu2204-small
variables:
SKIP_LEGACY_SHELL: "true"
Copy link
Member

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.

Copy link
Member Author

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 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.

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 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.

That is correct - run-orchestration.sh downloads the requested MongoDB version through download-mongodb.sh and then starts the requested topology.

@alcaeus alcaeus merged commit 83042fd into mongodb:master Jun 28, 2023
@alcaeus alcaeus deleted the update-evg-build-hosts branch June 28, 2023 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants