Closed madelineleclair closed 5 years ago
@madeline1991 - I was having the same problem, and I think I've solved it. (Maybe you have by now, too.)
At least in my case, the problem seemed to be that the OS version included a version of OpenSSL that was too new for the version of the eventmachine gem that puffing-billy depends on.
Here's what I did to fix it. (Of course our setup might be different from yours... and I barely know what I'm doing with docker/CircleCI... so YMMV!)
circleci/ruby:2.3-node
to circleci/ruby:2.3-stretch-node
. (By including -stretch
, we locked in the version of the underlying OS so it won't change underneath our feet.) But the version of OpenSSL that comes with Debian Stretch is too new for eventmachine. So I added the following to our "Installing Dependencies" step of the CircleCI config. (Supposedly, libssl1.0-dev can be installed alongside the system libssl and won't interfere.)
# The following apt source and libssl1.0 needed for puffing-billy and its eventmachine dependency
# They shouldn't interfere with the systemwide
sudo tee /etc/apt/sources.list.d/jessie.list > /dev/null <<'EOM'
deb http://httpredir.debian.org/debian jessie main contrib non-free
deb-src http://httpredir.debian.org/debian jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
EOM
sudo apt update
sudo apt install libssl1.0-dev```
bundle install
and restoring it when appropriate to save time. For some reason (which isn't obvious to me, but maybe should be), I had to remove the restore_cache
step. (I even removed it for a successful run, and the re-enabled it, thinking the properly built eventmachine gem would be cached now, but re-enabling the cache brought back the original 'Encryption is not available' message, so I just removed it for now. /shrugI hope it helps! Or, if you've solved it a better way, please let me know!
Just wanted to add that @nicedawg's suggestion fixed this issue for me. Specifically all I did was add an apt-get install libssl1.0-dev
to our Dockerfile. Then when we bundle install
as part of our build, event_machine
builds it's native extensions and all works perfectly.
I'm having an issue getting my tests that are using puffing-billy to run on CircleCI. I'm using puffing-billy to intercept jQuery ajax requests and send back mock responses for cucumber tests in a rails application. I'm using selenium_chrome_billy for the Javascript and browser. Everything is working locally, but when I try to run my cucumber tests on CircleCI, any test that is using selenium_chrome_billy crashes with the error 'Encryption is not available on this event-machine' and the tests are aborted.
I've followed the SSL setup in the documentation for CircleCI and building a docker image with OpenSSL for the tests, but neither has worked. Has anyone run across this issue with puffing-billy before?