Page MenuHomePhabricator

Deploy CiviCRM integration job to WMF integration server
Closed, ResolvedPublic8 Estimated Story Points

Description

We want to run our PHPUnit tests every time a patchset is pushed to the wikimedia/fundraising/crm repo. The only trick is to provision a MySQL database for use by the test. The following patch should manage databases correctly, and is compatible with the testing code within the repo:

https://gerrit.wikimedia.org/r/#/c/158554/

Event Timeline

awight assigned this task to hashar.
awight raised the priority of this task from to High.
awight updated the task description. (Show Details)
awight set Security to None.
awight added subscribers: Aklapper, atgo, awight and 2 others.
awight renamed this task from Deploy to WMF integration server to Deploy CiviCRM integration job to WMF integration server.Jan 13 2015, 6:55 PM

@awight I am in SF Office Tuesday, can we seat around together ?

Great, looking forward to it!

And, sorry to shout, I'm getting pressure to move forward with some heavy
lifting in this codebase, and the CI will make life much easier & the
future more secure :)

-a

I hopefully managed to send an invite for Tuesday 1/20 at 10:00am PST :]  Might want to bring other fundraising folks so we can talk about CI / Release in general or whatever other needs you might have.

From a short discussion I had with Adam, you can create an instance and we can add it as a Jenkins slave. Then create a job that clone the repositories and apply the patchset then invoke a single command (example: ./runtests.sh ).

The labs instance would need to have the puppet class role::ci::slave::labs::common applied which adds a ferm rule (and thus some iptables firewall rules). That might have side effects.

That sounds like a great plan. I'll assign this task to myself to create the labs instance, then pass it back for slaving.

@hashar: Is there an existing security group I can use for the new instance? I'm not sure what the firewall should look like for a Jenkins slave.

Status: waiting for Labs project.

Following on discussions I had last week with Gabriel Wicke (for RestBase testing T78410) and Adam Wight.

We can get one or more dedicated labs instance that you can configure how ever you want via puppet and we can add it as a slave. Then configure a job that invokes a test entry point (ex: composer test or make or whatever else suit your needs) and only runs on that instance.

The only requirement should be applying the puppet class role::ci::slave::labs::common which set up the requirements to be able to add the instance to the Jenkins master.

I propose to get the labs project quota bumped a bit and create an integration-civicrm01.eqiad.wmflabs instance then add you guys to the labs project so you can set it up via puppet and add whatever you need.

@awight is this a blocker for upgrading to 4.4?

I'd really like it to be. It will make the upgrade much less risky if we
have some basic sanity checking.

The alternative is to manually run the tests, but that's not sustainable,
and requires a lot more dev overhead.

Cool. Sounds good. I was going to say we should get all the blocking tasks
under T77910, but this is already blocking a blocker there (oy).

Thanks!

Change 194986 had a related patch set uploaded (by Awight):
Let composer install the stuff

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

Change 194989 had a related patch set uploaded (by Awight):
Remove .gitmodules

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

Change 194986 merged by Ejegg:
Let composer install the stuff

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

Change 195002 had a related patch set uploaded (by Awight):
Correct mysql client machine name

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

Change 195002 merged by Ejegg:
Correct mysql client machine name

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