PHP7 is faster than PHP5.6 so we should use it for as many builds
as possible.
This leaves 1 build - the coverage build - running on PHP5.6
and puts the rest on PHP7.
This patch introduces PHP 7 compatability without breaking semver by adding DBInt
and DBFloat classes, with Int/Float classes that are only loaded into PHP 5 environments
The PHP7 build includes code coverage, which makes it run a bit longer now.
In general, we shouldn't wait for allowed_failures with build feedback.
Travis seems to run builds (roughly) in order, so allowed_failures
tend to prolong build times, since it only runs a few builds concurrently.
We'll move the PHP7 build out of allowed_failures eventually,
but I think the general concept still applies:
There's little value in waiting around for allowed_failures builds.
See https://blog.travis-ci.com/2013-11-27-fast-finishing-builds/
PR builds are consistently failing because the version of framework
being used cannot be inferred. This environment variable provides the
answer.
It will need to be fixed for each major release, but I think that’s
less maintenance burden than complicating the build script to read this
from composer.json:extra.branch-alias.dev-master.
SCSS linting now uses the node-based sass-lint tool, since we’re
shifting away from CodeClimate.
This has the benefit of not requiring a ruby gem on dev tools -
everything is provided as npm dev dependencies.
This was also necessary to run the linting inside travis.
The ‘npm run lint’ command will be used to run listing on Travis, which
can also be used on local dev environments. These can also be used with
editor plugins to highlight errors immediately.
The intention is that this can be used in place of codeclimate. The
benefits are that we use a single toolchain in both CI and local dev,
which is not entirely the case at the moment.
Note the sass-lint is provided by “sudo gem install scss_lint”. It’s
possible that we can move to a node-based sass-lint; I can’t recall
what the motivation for using the scss_lint gem was - I think it was
mainly that we had the AirBNB styleguide already implemented as a linter
config.