Page MenuHomePhabricator

Create docker based CI job to build the wikidata-query-gui
Open, LowPublic8 Estimated Story Points

Description

Desired Behavior

As a WMDE developer
Once a GUI change has been merged on Gerrit
I can go to Jenkins to invoke a gui build job
That will submit a new build change to the deployment repository
So that I don't have to do manually on my local machine.

Acceptance Criteria

  • There is a Jenkins job defined that will build the query gui on demand and push the build to the qui-deploy repository for review and actual deployment.

Notes

Per the original description, the existing wikimedia-portals-build job does something similar.

Original Description

The old wikidata-query-gui-build CI job was disabled to avoid blocking migration of some CI things.
This decision was made as the job was broken anyway.

A new job should be created building the GUI based on the CI docker systems.

See also T213806 for wikimedia-portals-build which share common logic.

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Restricted Application added a subscriber: Aklapper. · View Herald Transcript

For the wdqs UI we were going to try to switch the build to use blubber.
T192006 currently blocked on getting an nginx base image to use, but most of the other stuff is already done in the patch.,

That sounds great and awesome :-] I will look at wikimedia/portals eventually, it is deployed slightly differently (it runs on MediaWiki appservers).

greg triaged this task as Medium priority.Nov 29 2018, 4:42 AM
hashar renamed this task from Migrate wikidata-query-gui-build and wikimedia-portals-build to Docker containers to Migrate wikidata-query-gui-build to Docker containers.Jan 15 2019, 11:00 AM
hashar removed a project: Wikimedia-Portals.
hashar updated the task description. (Show Details)
hashar removed a subscriber: Jdrewniak.

I have moved the part about Wikimedia portals to a standalone task T213806. Although the jobs for each repositories more or less share the same code, the migrations to Docker would most probably be slightly different.

Right now the decision needs to happen between T210286 and T192006.
And the question there is are we going to deploy the query service UI on the k8s cluster, which could be done as part of T235639.
If we do go the k8s route, we don't need to migrate the thing in this task we can just stop using it.

Once T241291 is done I guess we will just be able to close this one

So the decision by the QS team was not to do this as part of their work, so I guess this swings back to WMDE.

Right now the build job is broken anyway, so if this is the last blocked please done block on this, instead just disable the job.

Moving forward we will recreate the job using docker, or change the build process or something else etc.

Anything I can do to help with this? It's a blocker for us in Release Engineering (both for T211784 and for T239981 and thus T236576).

(As you said, I can just delete the job, but I would really like to help the team get this working again.)

Right now the goal would still be to not really use / have this job and instead complete T192006 creating a docker image and deploying the UI on k8s.

Change 575381 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[integration/config@master] jjb: [wikidata-query-gui-build] Drop for now, awaiting replacement with Docker

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

Change 575381 merged by jenkins-bot:
[integration/config@master] jjb: [wikidata-query-gui-build] Drop for now, awaiting replacement with Docker

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

Addshore renamed this task from Migrate wikidata-query-gui-build to Docker containers to Create docker based CI job to build the wikidata-query-gui.Apr 28 2020, 2:59 PM
Addshore lowered the priority of this task from Medium to Low.
Addshore updated the task description. (Show Details)

This was prioritized in a prio session, but was determined to perhaps be better as a trailblaze.
This ticket needs more content either way, but for now I have put it in the backlog.

I can go to Jenkins to invoke a gui build job
There is a Jenkins job defined that will build the query gui on demand and push the build to the qui-deploy repository for review and actual deployment.

Is it a requirement that the job is triggered manually? As far as I recall, the old job used to run automatically after every merge to the GUI repo, which seems more convenient to me.

darthmon_wmde set the point value for this task to 8.Wed, Feb 3, 1:29 PM

Change 664848 had a related patch set uploaded (by Lucas Werkmeister (WMDE); owner: Lucas Werkmeister (WMDE)):
[integration/config@master] WIP: Reinstate wikidata-query-gui-build job

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

Change 664848 merged by jenkins-bot:
[integration/config@master] Reinstate wikidata-query-gui-build job

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

Change 668038 had a related patch set uploaded (by Addshore; owner: Addshore):
[integration/config@master] Remove zuul trigger for wikidata-query-gui-build

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

So the triggers - zuul needs to be removed otherwise the zuul parameters get added again, overwriting the defaults set by the job.
This now runs, you can use one of the build buttons in the jenkins UI.

https://integration.wikimedia.org/ci/job/wikidata-query-gui-build/

Seems to fail right now:

11:13:41 Running "qunit:all" (qunit) task
11:13:41 >> There was an error with headless chrome
11:13:41 Fatal error: Failed to launch chrome!
11:13:41 /src/node_modules/puppeteer/.local-chromium/linux-686378/chrome-linux/chrome: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory

Could relate to some other tickets currently on camp!

Change 668038 merged by jenkins-bot:
[integration/config@master] Remove zuul trigger for wikidata-query-gui-build

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

Change 668069 had a related patch set uploaded (by Addshore; owner: Addshore):
[integration/config@master] wikidata-query-gui-build run webdriver

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

Now failing with:

12:26:08 
12:26:08 * Please tell me who you are.
12:26:08 
12:26:08 Run
12:26:08 
12:26:08   git config --global user.email "you@example.com"
12:26:08   git config --global user.name "Your Name"
12:26:08 
12:26:08 to set your account's default identity.
12:26:08 Omit --global to set the identity only in this repository.
12:26:08 
12:26:08 fatal: unable to auto-detect email address (got 'nobody@b11404240ad1.(none)')
12:26:08  Use --force to continue.
12:26:08 
12:26:08 Aborted due to warnings.
12:26:08 npm ERR! code ELIFECYCLE

https://integration.wikimedia.org/ci/job/wikidata-query-gui-build/5/console

Change 668069 merged by jenkins-bot:
[integration/config@master] wikidata-query-gui-build run webdriver

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

The main difference between our current approach and that used by wikimedia-portals-build is that we are trying to push to gerrit within our npm / grunt command, thus within a container.
wikimedia-portals-build instead only builds in the container, pushing on the jenkins host itself.

This might end up being easier to do so that we can easily use the ssh agent etc (as sssh details are provided by ssh-agent-credentials)