Page MenuHomePhabricator

Create composer-php70 job
Closed, ResolvedPublic

Description

Create a job that runs "composer test" and runs on PHP 7.0 on jessie.

Event Timeline

Change 309048 had a related patch set uploaded (by Paladox):
Add support for php7.0

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

Change 309048 merged by jenkins-bot:
Add composer test jobs that use PHP 7.0

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

Legoktm changed the task status from Open to Stalled.Sep 9 2016, 9:42 AM

These are now deployed in the experimental pipeline - we're now waiting for 1) some people to test out their extensions and make sure they pass 2) increase CI capacity so we can run more jobs per commit (T133911: Bump quota of Nodepool instances (contintcloud tenant)).

Thankyou, I guess we should send an email encouraging users to check experimental and report back here with the results of the php 7 test :)

Change 309556 had a related patch set uploaded (by Paladox):
Add composer-php70 as a experimental test to mediawiki/core

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

Change 309556 merged by jenkins-bot:
[mediawiki/core] experimental composer-php70-jessie

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

Change 381937 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[integration/config@master] Move composer-package-php70-docker out of experimental

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

Change 381937 merged by jenkins-bot:
[integration/config@master] Move composer-package-php70-docker out of experimental

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

Legoktm changed the task status from Stalled to Open.Oct 3 2017, 7:17 AM
Legoktm claimed this task.

All repositories except for avro-php pass the job (T177273), so it's no longer experimental.

OK, composer-package-php70-docker and composer-php70-docker are voting on all repositories that have the corresponding php55/hhvm jobs except for avro-php.

Change 383517 had a related patch set uploaded (by Hashar; owner: Hashar):
[integration/config@master] Revert "Move composer-package-php70-docker out of experimental"

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

Change 383517 merged by jenkins-bot:
[integration/config@master] Revert "Move composer-package-php70-docker out of experimental"

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

hashar subscribed.

I have moved composer-package-php70-docker back to the experimental pipeline due to T177905.


We do clone the repository on the host in ./src. Files are owned by jenkins-deploy.
It is then mounted as a volume in the container via -v /srv/jenkins-workspace/workspace/composer-package-php70-docker/src:/src
Inside the container, composer install is run as the nobody user and creates a bunch of files under src/vendor. They are owned by nobody.
On the next build, when trying to wipe out ./src the jenkins-deploy user is unable to delete the files generated during the build. The build fail.

Change 383560 had a related patch set uploaded (by Hashar; owner: Hashar):
[integration/config@master] composer-package: git clone inside the container

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

Change 386977 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[integration/config@master] Move composer-package-php70-docker out of experimental (try #2)

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

Change 383560 abandoned by Legoktm:
composer-package: git clone inside the container

Reason:
Fixed in Change-Id: I10bf7877044c988574c4ca5dc2d62cfe2c8a9916

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

Change 386977 merged by jenkins-bot:
[integration/config@master] Move composer-package-php70-docker out of experimental (try #2)

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

+ rm -rf log
+ mkdir -m 2777 -p log
+ rm -rf src
rm: cannot remove ‘src/vendor/phpspec/prophecy/README.md’: Permission denied
rm: cannot remove ‘src/vendor/phpspec/prophecy/src/Prophecy/Argument/ArgumentsWildcard.php’: Permission denied
...

https://gerrit.wikimedia.org/r/#/c/387660/ a patch for purtle.git
https://integration.wikimedia.org/ci/job/composer-package-php70-docker/80/consoleFull

The issue is that $WORKSPACE/src is created by the jenkins agent. Later on it is populated by a Docker container.

Supposedly that is fixable by having:

  • src with set group id
  • container entrypoint running with umask 002

(credits to addshore/tyler).

Checking with cumin:

sudo cumin --force 'name:docker' 'ls -l /srv/jenkins-workspace/workspace/composer-package-php70-docker'

Some of cache/log/src lack the setgroupid bit.

Mentioned in SAL (#wikimedia-releng) [2017-10-31T21:32:31Z] <hashar> T144961 : sudo cumin --force 'name:docker' 'rm -fR /srv/jenkins-workspace/workspace/composer-package-php70-docker/*'

Mentioned in SAL (#wikimedia-releng) [2017-10-31T21:34:23Z] <hashar> T144961 : sudo cumin --force 'name:docker' 'rm -fR /srv/jenkins-workspace/workspace/composer-*php70*'

Should be good. Maybe we need a preflight check to ensure cache/log/src are all fine.

Looks like we are now on strong grounds to build various other images and migrate a lot of the jobs \o/

I am fine having this task resolved.

👏🏽

Yay to team work!