StackStorm / st2-packages

StackStorm deb/rpm packages (automated docker build pipeline)
https://stackstorm.com/
28 stars 58 forks source link

Info: DroneCI v0.3 #10

Closed arm4b closed 8 years ago

arm4b commented 9 years ago

Comparing to v0.4, Drone v0.3 doesn't support build matrix.

0.4 stable is just released yesterday and drone/drone master just migrated to the new codebase, meaning v0.3 is considered unsupported/outdated from now.

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:

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.

dennybaa commented 9 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

arm4b commented 9 years ago

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.

dennybaa commented 9 years ago

got it. right.

dennybaa commented 8 years ago

closing. We don't favor drone for this task.