Good afternoon,
I recently deployed to production my first trellis/bedrock/sage site! I love Trellis and now I can’t imagine making Wordpress sites without it.
After the deploy I wanted to get some automatic deployments going on a Digital Ocean Droplet I have.
I have run into a lot of issues along the way (primarily related to SSH keys and missing dependencies). So far I have been able to fix these problem but I am at a point where I don’t know what to do. I’m hoping someone here can point me in the right direction.
Using (Please note that I did a find and replace on my sites name in the following code, my site is not attempting to deploy to example.com):
ansible-playbook deploy.yml -f 2 -e env=staging -e site=example.com -vvv
Things go wrong on the ‘run gulp’ task:
TASK [deploy : Run gulp] *******************************************************
[1;30mtask path: /var/lib/jenkins/workspace/example/example-deploy-staging/trellis/deploy-hooks/build-before.yml:19[0m
[0;34mUsing module file /usr/lib/python2.7/dist-packages/ansible/modules/commands/command.py[0m
[0;34m<XXX.XXX.XXX.XX> ESTABLISH LOCAL CONNECTION FOR USER: jenkins[0m
[0;34m<XXX.XXX.XXX.XX> EXEC /bin/sh -c 'echo ~ && sleep 0'[0m
[0;34m<XXX.XXX.XXX.XX> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /var/lib/jenkins/.ansible/tmp/ansible-tmp-1494007675.35-148670055240878 `" && echo ansible-tmp-1494007675.35-148670055240878="` echo /var/lib/jenkins/.ansible/tmp/ansible-tmp-1494007675.35-148670055240878 `" ) && sleep 0'[0m
[0;34m<XXX.XXX.XXX.XX> PUT /tmp/tmp0VX2wv TO /var/lib/jenkins/.ansible/tmp/ansible-tmp-1494007675.35-148670055240878/command.py[0m
[0;34m<XXX.XXX.XXX.XX> EXEC /bin/sh -c 'chmod u+x /var/lib/jenkins/.ansible/tmp/ansible-tmp-1494007675.35-148670055240878/ /var/lib/jenkins/.ansible/tmp/ansible-tmp-1494007675.35-148670055240878/command.py && sleep 0'[0m
[0;34m<XXX.XXX.XXX.XX> EXEC /bin/sh -c '/usr/bin/python /var/lib/jenkins/.ansible/tmp/ansible-tmp-1494007675.35-148670055240878/command.py; rm -rf "/var/lib/jenkins/.ansible/tmp/ansible-tmp-1494007675.35-148670055240878/" > /dev/null 2>&1 && sleep 0'[0m
[0;37mSystem info:[0m
[0;37m Ansible 2.3.0.0; Linux[0m
[0;37m Trellis at "Enable per-site setup for permalink structure"[0m
[0;37m---------------------------------------------------[0m
[0;31mfs.js:914[0m
[0;31m return binding.readdir(pathModule._makeLong(path), options.encoding);[0m
[0;31m ^[0m
[0;31m[0m
[0;31mError: ENOENT: no such file or directory, scandir '/var/lib/jenkins/workspace[0m
[0;31m/example/example-deploy-staging/site/web/app/themes/example[0m
[0;31m/node_modules/node-sass/vendor'[0m
[0;31m at Object.fs.readdirSync (fs.js:914:18)[0m
[0;31m at Object.getInstalledBinaries (/var/lib/jenkins/workspace/example[0m
[0;31m/example-deploy-staging/site/web/app/themes/[0m
[0;31m/node_modules/node-sass/lib/extensions.js:121:13)[0m
[0;31m at foundBinariesList (/var/lib/jenkins/workspace/example/[0m
[0;31mexample-deploy-staging/site/web/app/themes/example/node_modules/node-[0m
[0;31msass/lib/errors.js:20:15)[0m
[0;31m at foundBinaries (/var/lib/jenkins/workspace/example/example[0m
[0;31m-deploy-staging/site/web/app/themes/example/node_modules/node-[0m
[0;31msass/lib/errors.js:15:5)[0m
[0;31m at Object.module.exports.missingBinary (/var/lib/jenkins/workspace/example[0m
[0;31m/example-deploy-staging/site/web/app/themes/example[0m
[0;31m/node_modules/node-sass/lib/errors.js:45:5)[0m
[0;31m at module.exports (/var/lib/jenkins/workspace/example/example[0m
[0;31m-deploy-staging/site/web/app/themes/example/node_modules/node-[0m
[0;31msass/lib/binding.js:15:30)[0m
[0;31m at Object.<anonymous> (/var/lib/jenkins/workspace/example/example[0m
[0;31m-deploy-staging/site/web/app/themes/example/node_modules/node-[0m
[0;31msass/lib/index.js:14:35)[0m
[0;31m at Module._compile (module.js:571:32)[0m
[0;31m at Object.Module._extensions..js (module.js:580:10)[0m
[0;31m at Module.load (module.js:488:32)[0m
[0;31mfatal: [XXX.XXX.XXX.XX]: FAILED! => {[0m
[0;31m "changed": true, [0m
[0;31m "cmd": [[0m
[0;31m "gulp", [0m
[0;31m "--production"[0m
[0;31m ], [0m
[0;31m "delta": "0:00:02.198393", [0m
[0;31m "end": "2017-05-05 18:07:57.676272", [0m
[0;31m "failed": true, [0m
[0;31m "invocation": {[0m
[0;31m "module_args": {[0m
[0;31m "_raw_params": "gulp --production", [0m
[0;31m "_uses_shell": false, [0m
[0;31m "chdir": "../site/web/app/themes/example", [0m
[0;31m "creates": null, [0m
[0;31m "executable": null, [0m
[0;31m "removes": null, [0m
[0;31m "warn": true[0m
[0;31m }[0m
[0;31m }, [0m
[0;31m "rc": 1, [0m
[0;31m "start": "2017-05-05 18:07:55.477879", [0m
[0;31m "stderr": "fs.js:914\n return binding.readdir(pathModule._makeLong(path), options.encoding);\n ^\n\nError: ENOENT: no such file or directory, scandir '/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/vendor'\n at Object.fs.readdirSync (fs.js:914:18)\n at Object.getInstalledBinaries (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/extensions.js:121:13)\n at foundBinariesList (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/errors.js:20:15)\n at foundBinaries (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/errors.js:15:5)\n at Object.module.exports.missingBinary (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/errors.js:45:5)\n at module.exports (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/binding.js:15:30)\n at Object.<anonymous> (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/index.js:14:35)\n at Module._compile (module.js:571:32)\n at Object.Module._extensions..js (module.js:580:10)\n at Module.load (module.js:488:32)", [0m
[0;31m "stderr_lines": [[0m
[0;31m "fs.js:914", [0m
[0;31m " return binding.readdir(pathModule._makeLong(path), options.encoding);", [0m
[0;31m " ^", [0m
[0;31m "", [0m
[0;31m "Error: ENOENT: no such file or directory, scandir '/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/vendor'", [0m
[0;31m " at Object.fs.readdirSync (fs.js:914:18)", [0m
[0;31m " at Object.getInstalledBinaries (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/extensions.js:121:13)", [0m
[0;31m " at foundBinariesList (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/errors.js:20:15)", [0m
[0;31m " at foundBinaries (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/errors.js:15:5)", [0m
[0;31m " at Object.module.exports.missingBinary (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/errors.js:45:5)", [0m
[0;31m " at module.exports (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/binding.js:15:30)", [0m
[0;31m " at Object.<anonymous> (/var/lib/jenkins/workspace/example/example-deploy-staging/site/web/app/themes/example/node_modules/node-sass/lib/index.js:14:35)", [0m
[0;31m " at Module._compile (module.js:571:32)", [0m
[0;31m " at Object.Module._extensions..js (module.js:580:10)", [0m
[0;31m " at Module.load (module.js:488:32)"[0m
[0;31m ], [0m
[0;31m "stdout": "", [0m
[0;31m "stdout_lines": [][0m
[0;31m}[0m
to retry, use: --limit @/var/lib/jenkins/workspace/example/example-deploy-staging/trellis/deploy.retry
PLAY RECAP *********************************************************************
[0;31mXXX.XXX.XXX.XX[0m : [0;32mok=12 [0m [0;33mchanged=5 [0m unreachable=0 [0;31mfailed=1 [0m
[0;32mlocalhost[0m : ok=0 changed=0 unreachable=0 failed=0
So clearly the issue is that this directory:
'/var/lib/jenkins/workspace[0m
[0;31m/example/example-deploy-staging/site/web/app/themes/example[0m
[0;31m/node_modules/node-sass/vendor'
does not exist. I haven’t had this problem occur on my local machine, nor has it been an issue for my co-developer. I really have no idea where to go from here.
I am using Ubuntu 16.04. This error is occurring within the context of Jenkins but I have also run it as a regular user and experienced the same issue on this particular server.
If any one could point me in the right direction I would appreciate it. Thanks!