Add a *BSD build to CircleCI integration.
It seems CircleCI doesn't have support for BSD :frowning: only Linux, Mac, Android and Docker images.
Manual building on FreeBSD seems to work fine, with the only change in the process being installing and using gmake.
Darn, cc @greg-szabo any (ideally not-too-onerous) suggestions for BSD CI?
Currently, we test abstract functionality and not OS compatibility.
CircleCI seems to only support linux.
Jenkins is supported on BSD.
The Tendermint team didn't really trust anything that came out of Jenkins. (They might challenge the benefit of running the tests using Jenkins.)
It seems to me that we could build a BSD server in AWS and run a Jenkins slave on it. Since our tests that we run on CircleCI doesn't run properly on Jenkins (yet), I'd consider this an onerous task yet. Fixing our tests (and streamlining them with docker) is on the list, I'd put BSD testing after that.
Currently, we test abstract functionality and not OS compatibility.
We test that Gaia builds and passes tests on Linux - that's all I was proposing to test on BSD. Are there other kinds of compatibility you think we should test?
The Tendermint team didn't really trust anything that came out of Jenkins.
Why?
It seems to me that we could build a BSD server in AWS and run a Jenkins slave on it. Since our tests that we run on CircleCI doesn't run properly on Jenkins (yet), I'd consider this an onerous task yet. Fixing our tests (and streamlining them with docker) is on the list, I'd put BSD testing after that.
OK, doesn't need to be an immediate priority, would be nice to have before launch to ensure that validators can run *BSD.
We test that Gaia builds and passes tests on Linux - that's all I was proposing to test on BSD. Are there other kinds of compatibility you think we should test?
The set of scripts that we run for testing need to be made compatible with BSD. Part of them are specifcally Bash, which might or might not be compatible with a specific BSD variant, while the other part is docker, which is quite a new platform in BSD. It might be missing features - or not, no idea.
Why?
No real idea, I guess we don't like automation. (The ChatOps testnet setup process was referred to as 'magic' in one conversation.) Currently, I am not aware of other options for this setup, though.
ensure that validators can run *BSD.
Agreed, and to be honest, we should at least test the Windows binary too. If validators don't use it, GUIs will. So, this is important. All of this depends on a reproducible set of test scripts, that properly report errors. This is also a priority because I have another project that requires proper error reporting (continuous running QA). When I got that done, we can revisit this and see if we can do it for different OSes.
Is supporting BSD still a prelaunch concern? I believe @jlandrews and some of our validators are running BSD without problems. In the vein of launching sooner, it may be preferrable to punt this to soon after launch.
Is supporting BSD still a prelaunch concern?
No.
In the vein of launching sooner, it may be preferrable to punt this to soon after launch.
Agreed. Thanks!
Closing this in favor of tracking the work in the DevOps repo.
Most helpful comment
The set of scripts that we run for testing need to be made compatible with BSD. Part of them are specifcally Bash, which might or might not be compatible with a specific BSD variant, while the other part is docker, which is quite a new platform in BSD. It might be missing features - or not, no idea.
No real idea, I guess we don't like automation. (The ChatOps testnet setup process was referred to as 'magic' in one conversation.) Currently, I am not aware of other options for this setup, though.
Agreed, and to be honest, we should at least test the Windows binary too. If validators don't use it, GUIs will. So, this is important. All of this depends on a reproducible set of test scripts, that properly report errors. This is also a priority because I have another project that requires proper error reporting (continuous running QA). When I got that done, we can revisit this and see if we can do it for different OSes.