Page MenuHomeDevCentral

Prepare Jenkins slave Docker containers
Open, NormalPublic

Description

We need inside the software to run tests, linters and deployment tasks.

This means composer, phpunit, phpcs, arcanist, linters hinted at T571 and some already installed everywhere like jsonlint, etc.

We probably need two containers:

  • one isolated and standalone for tests
  • one with more privileged access for delivery

Revisions and Commits

rDJENKINSSLAVES Docker images for Jenkins slaves
D1759
D1758
D588
Partially Audited
Audit Required

Event Timeline

dereckson created this task.Nov 14 2015, 17:43
dereckson raised the priority of this task from to Normal.
dereckson updated the task description. (Show Details)
dereckson added a subscriber: dereckson.
dereckson moved this task from Backlog to Executor nodes on the Jenkins board.Jul 10 2016, 16:06
dereckson claimed this task.Jul 28 2016, 20:04

Needs Docker too (see T948 roadmap)

dereckson added a comment.EditedJul 29 2016, 01:11

According the history of silly_bardeen, we manually installed to test new CI jobs:

PHP

21:45:18 < Dereckson> 258 apt install php5-xsl
21:45:18 < Dereckson> 259 apt install php5-cli
21:45:18 < Dereckson> 260 apt install php5-common build-essential

Recent Node version

21:45:18 < Dereckson> 261 curl -sL https://deb.nodesource.com/setup_4.x | bash -
21:45:28 < Dereckson> 262 apt-get install nodejs

+npm

Node

21:45:47 < Dereckson> 235 npm install -g bower
21:45:49 < Dereckson> 238 npm install -g gulp
21:45:56 < Dereckson> 246 apt install phantomjs
21:45:56 < Dereckson> 247 npm install -g phantomjs

dereckson added a comment.EditedJul 29 2016, 17:28

We probably need two containers:
one isolated and standalone for tests
one with more privileged access for delivery

They should be on two Jenkins installations as with the new Jenkinsfile system, we can select the node, so if we want to run unprivileged users jobs on the CI, privileged jobs and CD must be elsewhere.

Note: Jenkinsfile isn't activated (and won't be) for jobs triggered from DevCentral.

dereckson renamed this task from Prepare a Jenkins slave Docker containers to Prepare Jenkins slave Docker containers.Jul 31 2016, 22:49
dereckson removed dereckson as the assignee of this task.Mar 8 2018, 21:07

All seem in order, including the xsl extension.

Instead to separate only nodes, we now have two separate Jenkins installations between CI (less privileged access for build tests) and CD (privileged access with deployment)

So, as we split ci jobs between those to move to CD, those we should keep in CI, we'll be able to test the PHP containers and validate this task.

dereckson added a comment.EditedSep 13 2018, 14:01

About phantomjs and silly_barden:

silly_bardeen
$  npm list -g --depth 0
/usr/lib
├── bower@1.8.2
├── gulp@3.9.1
└── npm@2.15.11
$ phantomjs
bash: phantomjs: command not found

We have phantomjs on Apsile and Elapsi (the containers prepared with the nasqueron/jenkins-slave-php image), not as binary installed for all, but as a dependency for one of the T571 lib.

Oh well, we can install it too, it can so be used to create some screenshots of a reassembled site for the static sites deployment pipelines (Daeghrefn doc for example).