fix dynamic branch pages #1
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
(related to flosell/lambdacd#76)
The issue was mainly compojure:
LambdaCDs
ui-for
returns a ring handler that responds to paths without a prefix, e.g./
to deliver the UI and/api
for various endpoints the UI uses to get data.compojure/GET
just passes on the full path, so the LambdaCD ring-handler would receive requests for a path like/branch/master/api
which it cannot resolve.compojure/context
gets rid of the prefix, fixing the issue.The issue remaining was that each request would create a LambdaCD instance. I fixed this with a very crude cache-like approach: Mutable map from branch-name to pipeline-instance. If it exists return, otherwise create a new one and put it into the map.
It's probably not race-condition free (it could create branch-pages you never see) but it works as a proof of concept