Deployment
In order to pre-compile our a connector we require every connector to be automatically be built, tested and deployed to Github Releases.
We have had good success using AppVeyor and Travis-CI as our automated build service.
AppVeyor
We use AppVeyor for our windows builds. See below for an example of appveyor.yml
environment
nodejs_version5.5.0
platform
x64
x86
shallow_clonetrue
skip_non_tagstrue
install
ps Install-Product node $env nodejs_version $env Platform
node --version
npm --version
node -e "console.log(process.arch);"
FOR /F "delims=" %%a IN ('node -e "console.log(require('./package.json').version)"') DO SET PACKAGE_VERSION=%%~a
SET PATH=C:\Program Files (x86)\MSBuild\12.0\bin\;%PATH%
SET GYP_MSVS_VERSION=2013
if "%PLATFORM%" == "x64" set PATH=C:\Python27-x64;%PATH%
if "%PLATFORM%" == "x86" SET PATH=C:\python27;%PATH%
npm install --build-from-source --production
npm install meshblu-connector-packager
npm dedupe
npm install -g flatten-packages
flatten-packages
ps -
if($env:platform -eq "x86")
$env:PACKAGER_ARCH="386"
else
$env:PACKAGER_ARCH="amd64"
npm run package
ps $root = Resolve-Path deploy; IO.Directory GetFiles($root.Path, '*.*', 'AllDirectories') | % Push-AppveyorArtifact $_ -FileName $_.Substring($root.Path.Length + 1) -DeploymentName Connector
buildoff
testoff
deploy
provider GitHub
description'Meshblu Connector Bundle'
auth_token
secure appveyor-github-oauth-key
artifact Connector
draftfalse
prereleasefalse
on
branch master
appveyor_repo_tagtrue
Travis CI
We use Travis for building on Linux and macOS. See below for an example .travis.yml
configuration.
language cpp
os
linux
osx
addons
apt
sources
ubuntu-toolchain-r-test
packages
g++-4.8
g++-4.8-multilib
gcc-multilib
build-essential
libbluetooth-dev
libudev-dev
libusb-1.0-0-dev
env
matrix
PACKAGER_NODE_VERSION="5.5" PACKAGER_ARCH="amd64" MAIN_BUILD="true"
PACKAGER_NODE_VERSION="5.5" PACKAGER_ARCH="386"
matrix
exclude
os osx
env PACKAGER_NODE_VERSION="5.5" PACKAGER_ARCH="386"
branches
only
"/^v[0-9]/"
before_install
PACKAGER_URL="https://meshblu-connector.octoblu.com/tools/packager/latest"
curl -fsS "${PACKAGER_URL}/travis_install_node.sh" -o /tmp/travis_install_node.sh
chmod +x /tmp/travis_install_node.sh
". /tmp/travis_install_node.sh"
if "$TRAVIS_OS_NAME" == "linux" -a "$MAIN_BUILD" == "true" ; then export NPM_PUBLISH="true"; fi
install
npm install --build-from-source
script
npm test
before_deploy
npm install --build-from-source --production
npm install meshblu-connector-packager
npm dedupe
npm install -g flatten-packages
flatten-packages
npm run package
deploy
provider releases
api_key
secure appveyor-encrypted-github-oauth-key
file_globtrue
file
"deploy/*"
skip_cleanuptrue
on
tagstrue
provider npm
email serveradmin@octoblu.com
api_key
secure travis-encrypted-npm-api-key
on
tagstrue
condition"$NPM_PUBLISH = true"
Updated less than a minute ago
Did this page help you?