Closed kenkangxgwe closed 4 years ago
Yes, I think that licensing will be the sticking point here.
Something like a GitHub-dedicated licensing strategy that expires within a few hours is a really interesting idea.
Having a free solution for CI with Wolfram Engine would be amazing ... for me it's a major pain to build/test my LibraryLink-based package on multiple OSs.
Brenton, I think GitHub allows for setting "secrets" such as a license key for a docker image. You can find it here: https://github.com/WolframResearch/codeparser/settings/secrets
That, together with a docker image like this one (v12.0, https://hub.docker.com/r/arnoudbuzing/wolframengine) should allow you to set up some sort of CI on GitHub.
@arnoudbuzing Thanks for pointing that out. That seems to be the best workaround so far. But I wonder if a VM is shutdown/destroyed, will the license be deactivated automatically? Maybe some float license might be great.
Let's try this one out: https://github.com/marketplace/actions/github-action-for-wolfram-language.
I was dm'ed by the author @miroox and told that only re-building the docker image will consume the LICENSE, but every time the docker container is created and run, the LICENSE seems reusable. I am not sure if creating two or more instances will happen.
I am experimenting with adding actions here: https://github.com/WolframResearch/codeparser/pull/19
The first issue that needs to be solved is building CodeParser.
The CMake scripts for CodeParser are written with the expectation of being provided a path to WolframKernel, which is not the same thing as wolframscript.
I don't know if any of the existing actions for Wolfram Language will work out-of-the-box.
For example, the "GitHub action for Wolfram language" action is expected to be given a script to run, but that isn't going to work here.
I wonder if there could be a Docker image setup to be called as a fake WolframKernel .
I have merged in #19 and I think everything is working here.
I just created a PR for this repo and I found that there's no way to automate tests if the new PR fails the tests in the repo. It will be great if there is a test pipeline like (Github Actions, TravisCI, etc) to run these tests after a PR is created. I once asked @arnoudbuzing a similar question on how to test wolfram codes in multiple temporary virtual machine instances (like docker), but the workaround is not suitable for GitHub.
One of the main obstacles may be that the license may expose if it is written in the repo config. Maybe WRI can set up a VM or GitHub-dedicated licensing strategy (e.g. a temp license expiring within a few hours) to accomplish this.