experimental:
  notify:
    branches:
      only:
        - master
        - /^__release-.*/

machine:
  xcode:
    version: 7.3

dependencies:
  cache_directories:
    - "node_modules"
    - "~/.electron"

  pre:
    - brew install node || brew upgrade node
    - npm install -g yarn@1.2.1

  override:
    - yarn install --force

compile:
  override:
    - yarn check-prettiness
    - yarn lint
    - yarn build:prod

test:
  override:
    - yarn test:setup
    - yarn test

deployment:
  production:
    branch: /^__release-.*/
    commands:
      - yarn run publish

experimental:
  notify:
    branches:
      only:
        - master
        - /^__release-.*/

machine:
  xcode:
    version: 7.3

dependencies:
  cache_directories:
    - "node_modules"
    - "~/.electron"

  pre:
    - brew install node@8.7.0
    - npm install -g yarn@1.2.1

  override:
    - yarn install --force

compile:
  override:
    - yarn check-prettiness
    - yarn lint
    - yarn build:prod

test:
  override:
    - yarn test:setup
    - yarn test

deployment:
  production:
    branch: /^__release-.*/
    commands:
      - yarn run publish

Use specific version and never upgrade
Use specific version and never upgrade

To make sure the CI never uses a different version of node, I've removed the upgrade command