Skip to content

Find a way to provide CI builds #7

@michaelneu

Description

@michaelneu

This project (obviously) needs an actual build passing badge badge. VBA didn't get much love from CI providers (yet): after 2 years of infrequently checking different providers, I think we're on our own here (surprisingly, nobody needs VBA macro CI? 🤔 ).

The best case would be to run tests and builds on actual Microsoft Excel, possibly with different versions. But this comes with a few issues. First, we need to have Microsoft Office installed. Most providers use Linux, which is neat for containers, so we'd need Wine and hope it works there, possibly even building a container. But since there are probably going to be issues, running on Windows would be better, which only leaves us with few providers such as AppVeyor, which only comes with developer tooling.

Technically, Chocolatey offers Microsoft Office installers. I haven't tried any of those, but I imagine there might be issues as well, possibly preventing automated installs. But even if we got automated installs going, there might be issues, first and foremost: licensing. If I use Office locally, it's covered under the EULA, but as soon as we use it to automate builds, there might be severe licensing issues, possibly not covered by a single-user license I'd try to get. This might be workable by approaching Microsoft, but it's still somewhat difficult to justify something like this for "I want to run automated builds for my Excel webserver" (though I think it'd be funny).

That aside, there's already a project running VBA macros out there: LibreOffice. Last time I checked, you could pretty much run Microsoft VBA code in LibreOffice Calc projects. There might be incompatibilities, but it might be the best case to run the builds at all.

I'm not sure how workable LibreOffice is and whether webxcel's macros work there (I haven't compared their specifications yet). If all fails, we'd need a separate runtime implementing the VBA specification, which obviously is a lot of work, just to provide a simple badge.

While I'm not sure what to do here, I'll leave this issue open and "up for grabs", maybe some day^tm we'll get automated builds because somebody managed to get it done. If everything fails and by 2050 (i.e. in 30 years) we don't have automated builds, I'll just add a dummy badge.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions