enso-org / dataframes

A library for working with tabular data in Luna.
https://luna-lang.org
MIT License
6 stars 5 forks source link

Appveyor #83

Closed mwu-tow closed 6 years ago

mwu-tow commented 6 years ago

Note: this is still WIP as S3 integration is not working yet. Nevertheless it is a good moment to present the results and ask for feedback.

This PR adds automatic build & package capability for AppVeyor (Windows). The build artifact is a relocatable package, that can be opened in Luna Studio on any Windows machine and used to run Dataframes without any additional dependencies. The package contains all Dataframes dependencies, including Apache Arrow, Python interpreter (with matplotlib and numpy) and more.

The aim is that each commit to master will get built with AppVeyor and have package uploaded to S3 storage, from where Luna Studio packager will be able to get it. As of writing, the package is available as artifact in appveyor page, see: https://ci.appveyor.com/project/lunalangCI/dataframes/builds/19553881/artifacts

This PR consits of 3 elements: 1) scripts\Package.hs — a script that builds and packages Dataframes 2) scripts\README.md — description of the script and its inputs 3) appveyor.yml — configuration file for AppVeyor

Please note that getting Dataframes (and eventually other Luna Libraries) is a long-term effort. This is not how the packaging definition will look like nor how the package layout will look like.

The purposes for the current PR are following: 1) it enables CI on Windows 2) it enables building Windows packages with Dataframes 3) it describes the process of packaging Dataframes on Windows and automates its significant part.

Future work:

Fixes #21 and #67.

mwu-tow commented 6 years ago

I had to revert URLs like https://packages.luna-lang.org/dataframes/libs-dev-v140.7z , apparently ssl certificate doesn't support them:

curl: (51) SSL: no alternative certificate subject name matches target host name 'packages.luna-lang.org'
Package.hs: callProcess: curl "-fSL" "-o" "C:\\Users\\appveyor\\AppData\\Local\\Temp\\1\\-676e47f744c719ce\\libs-dev-v140.7z" "https://packages.luna-lang.org/dataframes/libs-dev-v140.7z" (exit 51): failed
mwu-tow commented 6 years ago

Okay, now I'm happy enough with the results. Now AppVeyor also runs C++ tests. S3 upload works as well, though the artifacts are not public yet.
Please review the updates and let me know if there are any blocking issues.

Some known remaining points that IMO should not block PR: