mapbox / node-cpp-skel

Skeleton for bindings to C++ libraries for Node.js using node-addon-api
Creative Commons Zero v1.0 Universal
72 stars 10 forks source link

Pre-built binaries on a remote #14

Closed mapsam closed 8 years ago

mapsam commented 8 years ago

Is it worth documenting how to deploy pre-built binaries for each system architecture? Right now the package.json points to a remote location but as far as I can tell there's nothing to build and deploy to this location.

cc @springmeyer @jakepruitt @GretaCB

mapsam commented 8 years ago

Since this will come up for any cpp project, I think it's probably worth adding a commit-based script for publishing binaries via travis, something similar to Node Mapnik: https://github.com/mapnik/node-mapnik/blob/master/scripts/publish.sh

mapsam commented 8 years ago

Sooooo the issue here is that pre-built binaries on an s3 bucket will require a specific set of secret tokens, etc. Those can't be shared across projects (in the sense that we are sharing code with node-cpp-skel), but we can document how to set it up. The access to https://mapbox-node-binary.s3.amazonaws.com is Mapbox user specific, so maybe we should make a note in the README about pre-built binary releasing that discusses what a user needs to do to get things set up.

mapsam commented 8 years ago

Okay, I've been working on getting this set up with vtinfo and think we can point to the node-pre-gyp docs about setting up secure access keys for travis: https://github.com/mapbox/node-pre-gyp#travis-automation

Probably best to link to the "how to generate the proper IAM roles" as well, so people can learn more about that.

springmeyer commented 8 years ago

think we can point to the node-pre-gyp docs about setting up secure access keys for travis: https://github.com/mapbox/node-pre-gyp#travis-automation

Correct.

Probably best to link to the "how to generate the proper IAM roles" as well, so people can learn more about that.

👍 What is critical is that the role is scoped to the specific bucket + module such that npm unpublish or npm publish cannot overwrite any binaries inside the bucket not related to the specific module.

mapsam commented 8 years ago

Going to confirm publishing binaries works as expected, then we can update the readme, then close this!

mapsam commented 8 years ago

Also look at this commit - confirm it works: https://github.com/mapbox/node-cpp-skel/commit/dcd6e49faff2a851164c1357a7af2cc6f3ddea78

mapsam commented 8 years ago

Publishing now works for linux. Going to wait for the OSX build to finish 🍏 before merging.

mapsam commented 8 years ago

OSX is passing! Now waiting for binaries to publish for it ... then we're off to the races. 🏇

mapsam commented 8 years ago

Binaries exist after https://github.com/mapbox/node-cpp-skel/pull/26 merged