zeus
zeus copied to clipboard
Improve consistency of Travis provider
Rough plan:
- Implement listeners for 'status' hooks from GitHub
- When status hook includes anything related to Travis, use keys to pull data (vs push?)
- When pushing data, ensure we maintain data
- Artifacts still need pushed
- TBD: determine if artifacts should be present or not (do we wait for them vs marking the build as finished)
https://developer.github.com/v3/activity/events/types/#statusevent
We could also change the behavior so Zeus creates jobs in Travis (vs relying on GitHub). This would give us greater control and accuracy over results.
Found Travis webhooks https://docs.travis-ci.com/user/notifications/#Configuring-webhook-notifications
We've added webhooks, but still need API integration.
It looks like Travis will let us automatically authenticate against their APIs, which means we'll simply need to plug in some hooks for reconciling data on timeouts.
Likely this means:
- Adding 'last updated' attributes to Jobs
- Utilizing a timeout feature to sync failed webhooks
- Priority queue/cursor for updates? (We need to avoid squashing each other when possible)
Note: We cannot get artifacts via the API.