Origen-SDK / o2

MIT License
4 stars 0 forks source link

Travis #68

Closed coreyeng closed 4 years ago

coreyeng commented 4 years ago

Hello,

It may have taken 41 attempts to get it right, but I think I've got a Travis build setup. We've been adding a lot of tests lately, so I think we've reached a point where some CI might be needed. (For example, a backend test from #63 didn't actually pass...)

Travis is setup to run 8 jobs: the backend spec (just cargo test) and the Python tests in the example app for Python versions 3.8, 3.7, and 3.6. Its also setup to run in both Linux and Windows. The Windows setup required some manual intervention, but it seems alright.

Running the full script takes a while. Since we compile the project from scratch (and install Python manually on Windows, we just activate it on Linux), the Linux builds take ~5 minutes to run while the Windows builds are ~9 minutes. We can only run 5 jobs concurrently, so we're looking at ~15 minutes to run to completion.

Just as a future item. we can look into caching the built backend, which would cut down time some, or a full image for even faster times. Travis doesn't support caching items on the server in between jobs and most examples I found of others doing it were manually caching in a dummy Git repo or from a webhook (for webapps). We can look at just caching built dependencies too instead of the built backend.

Another option would be to toss everything in a job per OS, but then we'd lose some granularity. Personally, I think the time is alright for what we're doing, but it can get a bit annoying if you're having to debug...

Aside: @ginty, I fixed the Python 3.6 issue. The compiled regex had a different class name in 3.6.