I have a project hosted on github that builds and publishes releases to GitHub using Travis.ci:
https://github.com/Roaders/rpi-garage-door/releases/tag/v1.1.0
currently this just adds one tgz file to the release. This includes the bundles dependencies needed to run (the thinking behind this is that npm install
and npm run build
are really slow on a raspberry pi so just unzipping a tar is a million times faster). As travis uses 64bit machines the resulting tar files can only be used on 64bit so as part of the upgrade process we need to run npm rebuild
- which is still fairly slow on RPI 3.
Initially I would like to build a 32 bit version instead of a 64 bit version but I do not know how to configure this on travis. I think I need to change the npm config so I tried this in my .travis.yml
:
language: node_js
node_js: 12
script: npm run build-release
before_install:
npm set npm_config_arch ia32
but that doesn't work.
The second thing that I want to do is to build multiple versions of my project using different versions of node and then add all of those tgz files to the release.
this solution:
Cross-platform install of npm package sqlite3
is very close to what I want but does not work for me as the dependency I need to rebuild (epoll) does not build with node-pre-gyp