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.
This PR is one possible option to fix #2319. It adds configuration for Semaphore CI. This looks like a good option but it's no so clear how or when they plan to support open source, which is strange because I believe Semaphore version 1 did so. The free plan is limited to $20 of build minutes per month at $0.00050/sec, which is ridiculously low.
If you guys think it's worth it I will contact them to try and clarify their policy on open source.
Compared with Travis it is very fast (about 15-16 min per build).
The configuration is well documented here and it was reasonably straightforward to set up.
The execution model is easy to understand; each block runs sequentially and jobs within a block run in parallel.
There is also a matrix feature which can be used to declare a build matrix using multiple environment variables if needed.
The only niggle I would mention is that it is not possible to add unspecified keys at the top level to use to hold the scala versions so I had to use
env_vars
blocks for that purpose.From what I have seen in evaluating different services the flakiest test step which often struggles to run within memory limits is the Applicative.monoid.combineAll test, which frequently hits the GC overhead limit. I will raise that as a separate issue.