Closed arm4b closed 8 years ago
All true, yeah more reasonable approach will be to use CircleCI and wait for drone 0.4.1 with parallelism and fixes.
there is no option to run deploy section when all builds were successfull, as we have in CircleCI #6. We need something like this to upload artifacts only when everything went well
that's quite not true I think, we need publish into bintray and as far as I see there's such possibility https://github.com/drone/drone/tree/v0.3.1/plugin/publish
Here is what I mean:
Example:
ubuntu build - OK debian build - FAIL centos7 build - FAIL
We shouldn't upload artifacts to bintray, because not all tasks were successful.
ubuntu build - OK debian build - OK centos7 build - OK
All parallel tasks succeeded - we should upload to bintray.
We can't do ^^ that logic with Drone, to deploy only when all tasks succeeded. Deploy section will be executed in every sub-task, no way to check other tasks status.
In CircleCI we can do that - upload only when all tasks succeeded.
got it. right.
closing. We don't favor drone for this task.
Comparing to
v0.4
, Dronev0.3
doesn't support build matrix.Sadly we can't use 0.4 because of issues described #9. However there were some crazy ideas to make
v0.3
working.So the idea is: Instead of relying on v0.4 matrix, we can just run needed number of DroneCI instances simultaneously and connect them with our GitHub repo, so they would run in parallel. Golang hacks armab/drone#1 and armab/drone#2 made it possible (TBH this is my first Golang touch). So I built it from sources and ran 3 different drone instances with 3 different configs.
Worked surprisingly well on one AWS server and looks nice:
Now we have 3 configs for every build instead of one
.drone.yml
:.drone.debian.yml
.drone.ubuntu.yml
.drone.centos7.yml
Pros
Cons
v0.3
is outdated, meaning it will become more and more obsolete and unsupported with timedeploy
section when all builds were successfull, as we have in CircleCI #6. We need something like this to upload artifacts only when everything went welldocker-compose
and drone. I would prefer ability to 100% reproduce local and CI builds. For example there are small (solvable) problems running centos7 and debian builds.References
Conclusion
With possibility to run builds in parallel and even with limitations described, Drone v0.3 looks like one of possible solutions, same as CircleCI, both with its unique features.
docker-compose
, because of drone configs, meaning no reproduceable local and CI buildsdocker-compose
support, meaning 100% reproduce local and CI builds, ssh debug mode