Wednesday, 15 March 2017

Travis CI OSX build started to fail on make g++ command when using node-pre-gyp

I've started to get an OSX build failure on travis-ci. I'm trying to pre-compile some node native extensions using node-pre-gyp.

I had been successfully compiling the extensions on linux 32&bit, 64bit and OSX. The last successful build that I had on OSX was six months ago, then when trying to run a newer version the OSX build failed (same travis.yml file). I left it a while and retried in case travis was having issues, same result. Then tried re-running an old task that had succeeded and that failed too!

Here's the travis.yml file...

language: node_js

os:
  - linux
  - osx

node_js:
  - '7.4.0'

env:
  - TRAVIS_NODE_VERSION="7.4.0"
  - TRAVIS_NODE_VERSION="7.4.0" ARCH="x86"

matrix:
  exclude:
    - os: osx
      env: TRAVIS_NODE_VERSION="7.4.0" ARCH="x86"

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - g++-4.8
      - g++-4.8-multilib
      - gcc-multilib

before_install:
  # Electron install config https://github.com/electron/electron/blob/master/docs/tutorial/using-native-node-modules.md
  - export npm_config_target=1.6.0
  - export npm_config_arch=$ARCH
  - export npm_config_disturl=https://atom.io/download/atom-shell
  - export npm_config_runtime=electron
  - export npm_config_build_from_source=true

  # Node & GCC setup
  - nvm install $TRAVIS_NODE_VERSION
  - PATH=$PATH:`pwd`/node_modules/.bin
  - BASE_URL=$(node -p "'https://nodejs.org/download/release/' + process.version")
  - X86_FILE=$(node -p "'node-' + process.version + '-' + process.platform + '-x86'")
  - if [[ "$ARCH" == "x86" ]]; then wget $BASE_URL/$X86_FILE.tar.gz; tar -xf $X86_FILE.tar.gz; export PATH=$X86_FILE/bin:$PATH; fi
  # ignore:
  # dependency problems - leaving unconfigure  gcc-4.6:i386 g++-4.6:i386 libstdc++6-4.6-dev:i386
  # E: Sub-process /usr/bin/dpkg returned an error code (1)
  - if [[ "$ARCH" == "x86" ]]; then sudo apt-get -y install binutils:i386 gcc-4.8:i386 g++-4.8:i386 | true; fi
  - export CXX=g++-4.8;

install:
  - npm install --build-from-source

script:
  - ./node_modules/.bin/node-pre-gyp package

before_deploy:
  - PACKAGED_FILE=$(find build/stage -type f -name "*.tar.gz")

deploy:
  provider: releases
  api_key: $GITHUB_OAUTH_TOKEN
  file: $PACKAGED_FILE
  skip_cleanup: true
  on:
    tags: true

The error that it's throwing out is that it's unable to find g++-4.8 make: g++-4.8: No such file or directory Full error log here

I'm wondering if the build environment has changed for OSX since my last successful build. Does anyone have any idea how to either revert back to the old build environment or ensure that g++ is installed properly?

Thanks!



via Thomas

No comments:

Post a Comment