JD12345
JD12345

Reputation: 3

SerenityJS - Problem Getting Started with NPM CI Command - Serenity-BDD CLI jar

I'm on my Mac at work and I'm trying to get started with the Serenity JS template project found here: https://github.com/serenity-js/serenity-js-cucumber-protractor-template. After I installed all the prerequisites and cloned the code, I ran the "npm ci" command, which fails with error:

Looks like you need the latest Serenity BDD CLI jar. Let me download it for you...
I'm terribly sorry, but something didn't go according to plan.
The API call has failed

I followed the same process on my personal PC and didn't have this issue. So, maybe it has something to do with security on my work machine? I have admin rights, but can't run any sudo commands. Any suggestions would be appreciated.

Upvotes: 0

Views: 638

Answers (1)

Jan Molak
Jan Molak

Reputation: 4536

This error shows up when @serenity-js/serenity-bdd module fails to download the Serenity BDD reporting CLI - a Java artifact (.jar) distributed via https://jcenter.bintray.com/.

The download process itself is invoked when an npm install or npm ci command invokes this postinstall script in package.json:

"postinstall": "serenity-bdd update"

There could be several reasons for this error in a work setting:

  • Your machine might be restricted from making calls to external artifact repositories, such as jcenter.bintray.com. If that's the case, then you most likely have an internal artifact repository (like Artifactory or Nexus), which mirrors the external repo. If you have it, then you can tell serenity-bdd to fetch the .jar from there:
"postinstall": "serenity-bdd update --repository https://mycompany.com/artfactory"
  • Another common problem is corporate proxies messing around with SSL certificates, which you can avoid by instructing serenity-bdd to ignore any invalid certs:
"postinstall": "serenity-bdd update --ignoreSSL"

Hope this helps!

Jan

Upvotes: 0

Related Questions