Create a job that runs "composer test" and runs on PHP 7.0 on jessie.
Description
Details
Status | Subtype | Assigned | Task | ||
---|---|---|---|---|---|
Resolved | Legoktm | T144964 PHP7 support in CI (tracking) | |||
Resolved | Legoktm | T144961 Create composer-php70 job | |||
Resolved | Legoktm | T144872 Support PHP 7 in CI infra | |||
Resolved | hashar | T133911 Bump quota of Nodepool instances (contintcloud tenant) | |||
Resolved | hashar | T139771 Identify metric (or metrics) that gives a useful indication of user-perceived (Wikimedia developer) service of CI |
Event Timeline
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
Change 309556 merged by jenkins-bot:
[mediawiki/core] experimental composer-php70-jessie
Change 381937 had a related patch set uploaded (by Legoktm; owner: Legoktm):
[integration/config@master] Move composer-package-php70-docker out of experimental
Change 381937 merged by jenkins-bot:
[integration/config@master] Move composer-package-php70-docker out of experimental
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"
Change 383517 merged by jenkins-bot:
[integration/config@master] Revert "Move composer-package-php70-docker out of experimental"
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
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)
Change 383560 abandoned by Legoktm:
composer-package: git clone inside the container
Reason:
Fixed in Change-Id: I10bf7877044c988574c4ca5dc2d62cfe2c8a9916
Change 386977 merged by jenkins-bot:
[integration/config@master] Move composer-package-php70-docker out of experimental (try #2)
+ 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.