cztomczak / cefpython

Python bindings for the Chromium Embedded Framework (CEF)
Other
3.04k stars 471 forks source link

CI builds - Travis (Mac, Linux), AppVeyor (Win) and Shippable (ARM) #202

Open cztomczak opened 8 years ago

cztomczak commented 8 years ago

Travis runs only on Linux and Mac. Codeship seem to support only Linux. For Windows there is AppVeyor.

AppVeyor todo:

Shippable supports ARM platform for open source projects: http://blog.shippable.com/shippable-arm-packet-deliver-native-ci-cd-for-arm-architecture

Other alternatives:

Questions:

What needs to be done:

cztomczak commented 8 years ago

An example of CI using AppVeyor on Windows in CefSharp:

cztomczak commented 8 years ago

We could host upstream CEF binaries using GitHub releases [1] [2] [3] or on www.bintray.com . GitHub releases are associated with source code packages, so this might be a bit confusing - maybe create an empty branch and tag such packages.

guusdk commented 6 years ago

I'm giving AppVeyor a try here: https://ci.appveyor.com/project/guusdk/cefpython

So far, without much luck:

cztomczak commented 6 years ago

@guusdk Thanks for taking on this task.

  1. There is an "appveyor todo" list at the top, it states that prebuilt binaries from Spotify Automated Builds should be used. Do not build CEF from sources.

  2. There seems to be an issue with appveyor logs, they are out of order. This is not the succession in which scripts were really executed, thus you do not see the real error at the end. See this SO question: https://stackoverflow.com/questions/230751/how-to-flush-output-of-python-print . This must be fixed in all scripts in tools/ , must support Python 2 and 3 and run on all OSes (Win, Linux, Mac). It seems that apply this to every python process in your environment with PYTHONUNBUFFERED=TRUE (and unset the variable to undo this). in one of answers is the best option. It should be applied in each script at the beginning of main() function. a) Apply PYTHONUNBUFFERED in each python script - because these tools may call other scripts with the python command b) Set PYTHONUNBUFFERED env variable in appveyor script

Edited.

guusdk commented 6 years ago

Some progress! The build starts progressing nicely, but stops all of a sudden. I think that this is the error that causes the problem (but I am unsure how to prevent it from occurring): https://ci.appveyor.com/project/guusdk/cefpython/build/1.0.26#L723

guusdk commented 6 years ago

I'm thoroughly stuck on the issue mentioned in my previous comment. I'll require help to move forward.

Another issue that I'm unsure how to fix is the dependency on the Spotify Automated Builds. I've no idea how I can read the desired CEF vesion identifier from src/version/cef_version_win.h, using AppVeyor tooling. The best I can do is hardcode the value.

cztomczak commented 6 years ago

@guusdk I will have to take on this task myself, thanks for the effort Guus.