IntelliJ IDEA own make tool integrated in TeamCity
As you know since version 12.0 IntelliJ IDEA uses new external make, i.e. make which works out of main IDEA process. We worked together with IntelliJ IDEA team to integrate this make with IDEA Project runner in TeamCity. In this EAP we're ready to announce this feature. From now on IDEA Project runner in TeamCity will use the same code to make your project which is used by IDEA itself. Basically it means that all goodies available in IDEA make are now available in TeamCity too. To name a few:
- support for different languages like Groovy, Scala, Closure, etc.
- ability to compile Android projects and build .apk artifacts
- ability to build many other artifact types supported by IDEA itself, war, ear, etc.
- faster rebuild, thanks for highly optimized IDEA external make build process, and even more faster incremental building (should be enabled on IDEA project runner page)
VCS root identifiers
Similar to build configurations, templates and projects, VCS roots finally got human assignable identifiers. These identifiers can be used in references to VCS root properties, REST requests, and so on.
Additionally, bulk editing of object identifiers is now possible. While staying on a project you can modify IDs of sub projects, VCS roots, configuration and templates in a single action.
Project configuration files
TeamCity stores configuration under <TeamCity data directory>/config directory. All project configuration files are stored under <TeamCity data directory>/config/projects. Each project has it's own directory named after project ID. Before this EAP project configuration was stored in a single XML file - project-config.xml. In this file you could find definitions of all build configurations, templates and VCS roots. Starting with this EAP definitions of build configurations, templates and VCS roots are moved to separate files. Now the project configuration files structure looks like:
buildTypesdirectory contains definitions of build configurations and templates, one file per definition, with file names like:
<build configuration/template ID>.xml
vcsRootsdirectory contains definitions of vcs roots, one file per definition, with file names like:
<vcs root ID>.xml
pluginDatadirectory contains plugin specific configuration files.
project-config.xml file contains project specific settings only, like parameters and cleanup settings.
Starting with this EAP all meta-runners are stored on project level. In other words you can create meta-runner which will be available in your project and sub-projects only and won't be visible outside. Target project where Meta-runner must be stored can be selected right in the Extract Meta-runner dialog. Once Meta-runner is extracted, you can edit its raw xml definition right in the browser. This can be useful if you want to reorder parameters or make some quick fixes in runner scripts.
Feature branches support
We continue improving feature branches support in version 8.0. With this EAP you can configure artifact dependency on a build from a specific branch. You can also control the set of branches where labeling must be performed.
- new set of icons in TeamCity web interface and TeamCity IntelliJ plugin
- build configuration paused state and project archived state are now stored in configuration files instead of database, so if you move configuration files from server to server paused and archived states won't be lost
- "checkout on agent" build stage can be interrupted now
- bulk remove of license keys on Licenses page
- hiding of server health items now recorded in audit
- changes in VCS roots are recorded in audit, as well as manual start of cleanup
- working copies in new Subversion VCS roots will use 1.7 format by default