1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-13 10:22:42 +01:00
phorge-phorge/src/applications
epriestley d6b937ca27 Allow external systems to send messages to build targets
Summary:
Ref T1049. Allows external systems to send a message to a build target. The primary intended use case is:

  - You make an HTTP request to Jenkins.
  - The build goes into a "waiting" state.
  - Later, Jenkins calls `harbormaster.sendmessage` to report that the target passed or failed.
  - The build continues as appropriate.

This is deceptively complicated because:

  - There are a lot of race concerns. We might get a message back from an external system before it even responds to the request we made. We want to make sure we process these messages no matter when we receive them.
  - These messages need to be sent to a build target (vs a build or buildable) because we'll get into trouble with parallelization later on otherwise (Jenkins is told to do 3 builds; we can't tell which ones failed or what overall state is unless the message are sent to targets).
  - I initially thought about implementing this as a separate "Wait for a response from an external system" build step. This gets a lot more complicated for users once we do parallelization, though. Particularly, in the case where you've told Jenkins to do 3 builds, the three "wait" steps need to know which target they're waiting for (and jenkins needs to know some unique identifier for each target). So this pretty much boils down to a more complicated, more error-prone version of using target PHIDs.

This makes the already-muddy Build UI a bit worse, but it needs a general clarity pass anyway (it's showing way too much uninteresting data, and should show a better summary of results instead).

Test Plan:
  - This doesn't really do anything interesting yet.
  - Used Conduit to send messages to build plans.
  - Viewed the messages on the build screen.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T1049

Differential Revision: https://secure.phabricator.com/D8604
2014-03-25 16:11:28 -07:00
..
arcanist/conduit Move Conduit methods inside applications 2012-12-21 12:21:59 -08:00
audit Modernize documentation links 2014-03-17 15:01:31 -07:00
auth Update Google auth documentation to discuss "Google+ API" and new console URI 2014-03-25 13:36:47 -07:00
base Make dialogs a little easier to use 2014-03-21 14:40:05 -07:00
cache Minor, mark SERIALIZATION_PHP fields as BINARY in Lisk 2014-02-23 16:35:51 -08:00
calendar Issue a proper 404 when trying to edit nonexistent events 2014-03-21 19:11:48 -07:00
chatlog Various linter fixes. 2014-02-26 12:44:58 -08:00
conduit Modernize documentation links 2014-03-17 15:01:31 -07:00
config Make Maniphest task statuses user configurable 2014-03-25 14:05:36 -07:00
conpherence Fix three minor edge case behaviors in Conpherence 2014-03-10 16:21:28 -07:00
countdown [Countdown] fix undefined variable errors 2014-02-05 05:33:31 -08:00
daemon Do not perform write in PhabricatorDaemonLogQuery by default 2014-01-21 14:04:12 -08:00
dashboard Add edit/view plumbing for dashboards and panels 2014-02-03 10:52:15 -08:00
differential Downgrade accepts on "request changes", and make sticky accepts optional 2014-03-25 15:41:07 -07:00
diffusion Modernize documentation links 2014-03-17 15:01:31 -07:00
diviner Use "\z" instead of "$" to anchor validating regular expressions 2014-03-13 12:42:41 -07:00
doorkeeper Move PhabricatorTagView to PHUITagView 2014-01-14 14:09:52 -08:00
draft/storage Differential - add DifferentialDraft to track whether revisions have draft feedback or not 2014-02-18 16:25:16 -08:00
drydock Various linter fixes. 2014-02-26 12:44:58 -08:00
fact Extend all "ManagementWorkflow" classes from a base class 2013-12-27 13:15:40 -08:00
feed Include objectPHID in feed.query text view 2014-03-13 17:56:25 -07:00
files Modernize documentation links 2014-03-17 15:01:31 -07:00
flag Various linter fixes. 2014-02-26 12:44:58 -08:00
harbormaster Allow external systems to send messages to build targets 2014-03-25 16:11:28 -07:00
help Whitelist allowed editor protocols 2014-03-17 13:00:37 -07:00
herald Make Herald less ambitious about resolving repositories for revisions 2014-03-21 14:39:56 -07:00
home Modernize documentation links 2014-03-17 15:01:31 -07:00
legalpad Update Remarkup Note Styles 2014-03-21 21:42:39 -07:00
lipsum Use DifferentialRevisionEditor in lipsum 2014-03-11 13:02:00 -07:00
macro Use "\z" instead of "$" to anchor validating regular expressions 2014-03-13 12:42:41 -07:00
mailinglists Extract textual object list parsing from Differential 2014-03-07 17:44:44 -08:00
maniphest Use ApplicationTransactions and CustomField to implement build steps 2014-03-25 16:08:40 -07:00
meta Various linter fixes. 2014-02-26 12:44:58 -08:00
metamta Port Differential mail features forward to transactions 2014-03-11 13:02:06 -07:00
notification Add a "Send Test Notification" button to make testing the server easier 2014-02-17 16:00:33 -08:00
nuance Various linter fixes. 2014-02-26 12:44:58 -08:00
oauthserver Use modern UI for OAuthServer details page 2014-03-18 15:39:45 -07:00
owners Modernize documentation links 2014-03-17 15:01:31 -07:00
passphrase Fix Passphrase cancel URI 2014-03-19 19:25:31 -07:00
paste Maniphest Tasks + Project Boards - some polish 2014-03-04 17:01:33 -08:00
people Use ApplicationTransactions and CustomField to implement build steps 2014-03-25 16:08:40 -07:00
phame Modernize documentation links 2014-03-17 15:01:31 -07:00
phid Modernize OAuthServer PHIDs and Queries 2014-03-18 13:27:55 -07:00
phlux Use "\z" instead of "$" to anchor validating regular expressions 2014-03-13 12:42:41 -07:00
pholio Modernize documentation links 2014-03-17 15:01:31 -07:00
phortune Added some additional assertion methods. 2014-03-08 19:16:21 -08:00
phpast Remove phpast.* Conduit methods 2014-03-12 11:30:22 -07:00
phragment Various linter fixes. 2014-02-26 12:44:58 -08:00
phrequent Various linter fixes. 2014-02-26 12:44:58 -08:00
phriction Modernize documentation links 2014-03-17 15:01:31 -07:00
policy Added some additional assertion methods. 2014-03-08 19:16:21 -08:00
ponder Maniphest Tasks + Project Boards - some polish 2014-03-04 17:01:33 -08:00
project Use ApplicationTransactions and CustomField to implement build steps 2014-03-25 16:08:40 -07:00
releeph Clean up various pieces of dead/obsolete Differential code 2014-03-11 13:02:19 -07:00
remarkup/conduit Support processing Remarkup in bulk with remarkup.processbulk Conduit method 2013-11-02 16:30:11 -07:00
repository Fix issue with ref/fixes in commit messages 2014-03-13 17:47:11 -07:00
search Provide viewer to CustomFields in ApplicationSearch 2014-03-25 14:02:18 -07:00
settings Allow users to terminate login sessions 2014-03-17 15:02:01 -07:00
slowvote Modernize documentation links 2014-03-17 15:01:31 -07:00
subscriptions Show profile pictures in subscribers dialog 2014-03-19 19:29:48 -07:00
support/application Whitelist allowed editor protocols 2014-03-17 13:00:37 -07:00
system Add a robots.txt file to disallow /diffusion/ 2014-03-14 11:53:17 -07:00
tokens Wrap the feed text rendering stuff with htmlspecialchars_decode 2014-02-03 17:05:30 -08:00
transactions Reload subscribers before sending mail, etc 2014-03-18 16:01:21 -07:00
typeahead Various linter fixes. 2014-02-26 12:44:58 -08:00
uiexample Make the "NOTE:" text bold and slightly darker 2014-03-22 18:06:46 -07:00
xhprof Use JSON, not PHP serialization, for XHProf profiles. 2014-02-24 04:16:52 -08:00