bigflow icon indicating copy to clipboard operation
bigflow copied to clipboard

Continuous Integration Support

Open acmol opened this issue 7 years ago • 4 comments

Continuous integration is required for bigflow, and we should have a system to support continuos integration.

Maybe we can use travis-ci.org, or teamcity, or we can set up a jenkins at BCC (Baidu Cloud Compute)?

acmol avatar Nov 14 '17 16:11 acmol

I think we can have both...

TeamCity(https://www.jetbrains.com/teamcity/) is free for a small project. The professional server license(which is free) supports up to:

  1. 20 build configurations
  2. full access to all product features
  3. support via forum and issue tracker
  4. 3 build agents

which should be sufficient for the development of bigflow.

TeamCity also works nicely with IDEs came from JetBrains.

The only downside is that we have to run teamcity somewhere and requires operating.

advancedxy avatar Nov 14 '17 16:11 advancedxy

I've already set travis-ci up, and it works just fine.

With the help of the travis-ci, now we can run our ci job at every commit on master & every pull request. If any code committed to the master, github pages will be generated to this page, and a release file will be uploaded to here.

But at this moment, there are 3 more things to do:

  1. A spark cluster is required to daily run the ci-test on spark.
  2. The job should be faster by refining the build with caches.
  3. A quicker job to build documents is required. If there is no big change, the docs should be built in a few minutes, not about one hour.

acmol avatar Nov 27 '17 05:11 acmol

I was so naive... travis-ci.org's limitation of timeout is 50min, while travis-ci.com's limitation is 120min.

On travis-ci.com, the ci tests ran perfect in about one hour, but now on travis-ci.org it just ... not work.

So speeding up the build becomes more important than before.

acmol avatar Nov 27 '17 13:11 acmol

Well you could use https://en.m.wikipedia.org/wiki/Ccache for massively speeding up the builds, or the mozilla fork (which support rust too) https://github.com/mozilla/sscache. You could also in complement, use the meson build system : http://mesonbuild.com/

Also, HS : it's a nice to have (for security and stability reason) feature : https://github.com/Microsoft/checkedc Even if using Rust code would still be the best way.

LifeIsStrange avatar Nov 28 '17 23:11 LifeIsStrange