Magento 2 as composer dev requirement for extensions

The answer depends on what your CI needs are.

For unit tests I am currently looking into the approach to only include in the require section the actual Magento modules I have as direct dependency (that I get nearly all modules this way anyway is for Magento to sort out):

"require": {
  "magento/module-backend": "~100.0.2",
  "magento/module-sales": "~100.0.2"
}

This works well for one of my extensions see Travis here but is running into an interesting issue on another extension where Magento should autogenerate an interface for a mock - details here.

If you are looking beyond unit tests I think it makes sense to have a pre-built Magento environment in which you install the extension into rather than running an install script for Magento environment on every build.