abfa8f840d
Add a new field on the build feature dialog allowing the user to specify where arcanist command is located on the agent. We will need this information to execute the patching process upon which we will be building. This commit also add Command and CommandBuilder into Common which we will be using to execute arcanist to apply the `arc patch` during the build so we can actually build the changes from the revision, Also moved the three logging based files into a sub-folder causing many file updates of just an import. |
||
---|---|---|
Harbormaster-Teamcity-Plugin | ||
Teamcity-Phabricator-Plugin | ||
.gitattributes | ||
.gitignore | ||
README.md |
Splint
X-Lab's Linting Spine
Things
This repository holds the plugins created to link together our internal systems. The original premise to link Phabricator, TeamCity and SonarQube to enable linting on differential reviews.
Below are the plugins:
- Harbormaster-Teamcity-Plugin
- Teamcity-Phabricator-Plugin
- SonarQube-Phabricator-Plugin
Harbomaster-Teamcity-Plugin
The harbormaster plugin allows us to trigger a build configuration within TeamCity as part of a harbormaster build plan.
The plugin requires:
- TeamCity URI
- Build Configuration to trigger a build for
- TeamCity access token to authenticate with the server
To deploy simply drag the contents of the folder to src/extensions/
on the Phabricator instance and then restart the application.
Teamcity-Phabricator-Plugin
The teamcity plugin comprises of server and agent plugins for teamcity.
Server
The server plugin monitors builds with the phabricator feature enabled waiting for builds to finish and notify phabricator.
Once build is triggered from phabricator using Harbomaster-Teamcity-Plugin and the phabricator build feature is configured on the build configuration then the server plugin will wait and listen for the build to finish before reporting the result back to harbormaster to be displayed in phabricator.
Getting Started
Harbormaster-Teamcity-Plugin
No building is needed for for the harbormaster plugin just dev away and copy the files into the src/extensions
folder with your phabricator instance
Teamcity-Phabricator-Plugin
You will need to move in to the Teamcity-Phabricator-Plugin/
folder:
- To build the plugins (server and agent) just run:
mvn package
By default the teamcity plugin is equipped with teamcity-sdk-maven-plugin which allows for a local instance of teamcity with debugging capabilities. See their documentation for how to use: https://github.com/JetBrains/teamcity-sdk-maven-plugin
Useful Links
- https://confluence.jetbrains.com/display/TCD10/Web+UI+Extensions
- http://javadoc.jetbrains.net/teamcity/openapi/current/jetbrains/buildServer/serverSide/BuildServerAdapter.html
- https://github.com/JetBrains/teamcity-sdk-maven-plugin/wiki/Developing-TeamCity-plugin
- https://www.quali.com/blog/teamcity-plugin-development-journey/
- https://plugins.jetbrains.com/docs/teamcity/plugin-development-faq.html
- https://plugins.jetbrains.com/docs/teamcity/getting-started-with-plugin-development.html