Page MenuHomePhabricator

Create composer-test-php70 docker image for fundraising tech's crm tests
Closed, ResolvedPublic

Description

Hi Releng folks. If it's not too much work, could you please create a docker image capable of running our CiviCRM tests on PHP7.0? We will very likely be running 7.0 in production till the end of December at least.

We are also updating dependencies so the PHP5.6 tests no longer work (see https://gerrit.wikimedia.org/r/526573 for example). There's supposed to be a set of tests running on PHP7.2, but they're failing because of a missing php-intl extension (see https://gerrit.wikimedia.org/r/518742). It would be nice to get those working, but even nicer to get a testing environment with the same version of PHP as we're using in production.

Event Timeline

Hey, happy to help out.

Just to confirm, you want 7.0 not 7.2? Everything else in production is now running 7.2.

Yep, the payments cluster, including our CiviCRM box, is stuck on 7.0 till at least the end of the year.

Change 540662 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[integration/config@master] jjb: Provide wikimedia-fundraising-crm-composer-php70-docker

https://gerrit.wikimedia.org/r/540662

Change 540663 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[integration/config@master] layout: [wikimedia/fundraising/crm] Add …-composer-php70-docker as experimental

https://gerrit.wikimedia.org/r/540663

Change 540662 merged by jenkins-bot:
[integration/config@master] jjb: Provide wikimedia-fundraising-crm-composer-php70-docker

https://gerrit.wikimedia.org/r/540662

Change 540663 merged by jenkins-bot:
[integration/config@master] layout: [wikimedia/fundraising/crm] Add …-composer-php70-docker as experimental

https://gerrit.wikimedia.org/r/540663

Mentioned in SAL (#wikimedia-releng) [2019-10-03T19:12:51Z] <James_F> [wikimedia/fundraising/crm] AAdd experimental php70 job T230446

Change 540664 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[integration/config@master] layout: [wikimedia/fundraising/crm] Make …-composer-php70-docker a full job

https://gerrit.wikimedia.org/r/540664

Change 540681 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[integration/config@master] dockerfiles: Rename php to php70 and add intl

https://gerrit.wikimedia.org/r/540681

Change 540682 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[integration/config@master] dockerfiles: Bump things over to use php70 which adds intl

https://gerrit.wikimedia.org/r/540682

Change 540683 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[integration/config@master] jjb: Move jobs over to php70-inherited images

https://gerrit.wikimedia.org/r/540683

Change 540681 merged by jenkins-bot:
[integration/config@master] dockerfiles: Rename php to php70 and add intl

https://gerrit.wikimedia.org/r/540681

Change 540682 merged by jenkins-bot:
[integration/config@master] dockerfiles: Bump things over to use php70 which adds intl

https://gerrit.wikimedia.org/r/540682

Thanks @Jdforrester-WMF , looks like this is working great!

Thanks @Jdforrester-WMF , looks like this is working great!

Hey, thanks. Happy to help out.

Unfortunately I can't switch it on in a voting manner right now because one of your dependencies (via civicrm) is using String as a class name, which is prohibited in PHP 7.0. See https://integration.wikimedia.org/ci/job/wikimedia-fundraising-crm-composer-php70-docker/4/console

What do you want me to do next? I could make it run alongside the PHP 7.2 test as non-voting?

Jdforrester-WMF changed the task status from Open to Stalled.Oct 17 2019, 8:55 PM

Change 540683 merged by jenkins-bot:
[integration/config@master] jjb: Use subsidiary images changed by move to versioned PHP images

https://gerrit.wikimedia.org/r/540683

Oh shoot, thanks for pointing that out. The CSS library with the offending class name seems to have since been updated to call the class CSSString. I'll try to get the new version in, once I can figure out how to test it. It's not referred to directly in the CiviCRM codebase - it's a dependency of a SVG library which in turn is a dependency of a PDF library.

Yeah, dependency hell. My sympathies, especially at this time of year. :-(

Change 540664 abandoned by Jforrester:
[integration/config@master] layout: [wikimedia/fundraising/crm] Make …-composer-php70-docker a full job

Reason:
This didn't go anywhere.

https://gerrit.wikimedia.org/r/540664

hashar claimed this task.
hashar subscribed.

This is what we have today:

zuul/layout.yaml
- name: wikimedia/fundraising/crm
  template:
    - name: composer-test-php74-only
  test:
    - wikimedia-fundraising-civicrm-bullseye-docker
  gate-and-submit:
    - wikimedia-fundraising-civicrm-bullseye-docker

The wikimedia-fundraising-civicrm-bullseye-docker job uses the Docker image docker-registry.wikimedia.org/releng/docker-registry.wikimedia.org/releng/civicrm:0.4.2-s2. That image is based on Debian Bullseye and install its php package. If needed, we can move it to Bookworm.

:-]